整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          JavaScript-字符串

          JavaScript-字符串

          avaScript的字符串就是用''或""括起來的字符表示。

          如果'本身也是一個字符,那就可以用""括起來,比如"I'm OK"包含的字符是I,',m,空格,O,K這6個字符。

          如果字符串內(nèi)部既包含'又包含"怎么辦?可以用轉(zhuǎn)義字符\來標識,比如:

          'I\'m \"OK\"!';
          

          表示的字符串內(nèi)容是:I'm "OK"!

          轉(zhuǎn)義字符\可以轉(zhuǎn)義很多字符,比如\n表示換行,\t表示制表符,字符\本身也要轉(zhuǎn)義,所以\表示的字符就是\。

          ASCII字符可以以\x##形式的十六進制表示,例如:

          '\x41'; // 完全等同于 'A'
          

          還可以用\u####表示一個Unicode字符:

          '\u4e2d\u6587'; // 完全等同于 '中文'
          

          多行字符串

          由于多行字符串用\n寫起來比較費事,所以最新的ES6標準新增了一種多行字符串的表示方法,用反引號 * ... * 表示:

          `這是一個
          多行
          字符串`;
          

          注意:反引號在鍵盤的ESC下方,數(shù)字鍵1的左邊:

          模板字符串

          要把多個字符串連接起來,可以用+號連接:

          var name='小明';
          var age=20;
          var message='你好, ' + name + ', 你今年' + age + '歲了!';
          alert(message);
          

          如果有很多變量需要連接,用+號就比較麻煩。ES6新增了一種模板字符串,表示方法和上面的多行字符串一樣,但是它會自動替換字符串中的變量:

          var name='小明';
          var age=20;
          var message=`你好, ${name}, 你今年${age}歲了!`;
          alert(message);
          'use strict';
          // 如果瀏覽器支持模板字符串,將會替換字符串內(nèi)部的變量:
          var name='小明';
          var age=20;
          

          操作字符串

          字符串常見的操作如下:

          var s='Hello, world!';
          s.length; // 13
          

          要獲取字符串某個指定位置的字符,使用類似Array的下標操作,索引號從0開始:

          var s='Hello, world!';
          s[0]; // 'H'
          s[6]; // ' '
          s[7]; // 'w'
          s[12]; // '!'
          s[13]; // undefined 超出范圍的索引不會報錯,但一律返回undefined
          

          需要特別注意的是,字符串是不可變的,如果對字符串的某個索引賦值,不會有任何錯誤,但是,也沒有任何效果:

          var s='Test';
          s[0]='X';
          alert(s); // s仍然為'Test'
          

          JavaScript為字符串提供了一些常用方法,注意,調(diào)用這些方法本身不會改變原有字符串的內(nèi)容,而是返回一個新字符串:

          toUpperCase

          toUpperCase()把一個字符串全部變?yōu)榇髮懀?/p>

          var s='Hello';
          s.toUpperCase(); // 返回'HELLO'
          

          toLowerCase

          toLowerCase()把一個字符串全部變?yōu)樾懀?/p>

          var s='Hello';
          var lower=s.toLowerCase(); // 返回'hello'并賦值給變量lower
          lower; // 'hello'
          

          indexOf

          indexOf()會搜索指定字符串出現(xiàn)的位置:

          var s='hello, world';
          s.indexOf('world'); // 返回7
          s.indexOf('World'); // 沒有找到指定的子串,返回-1
          

          substring

          substring()返回指定索引區(qū)間的子串:


          當前互聯(lián)網(wǎng)信息爆炸的時代,高效準確地抓取和處理網(wǎng)頁內(nèi)容成為眾多領(lǐng)域必備技能。網(wǎng)絡(luò)爬蟲技術(shù)搭配強大的HTML解析庫HtmlAgilityPack,能夠自動化抽取并結(jié)構(gòu)化分析網(wǎng)頁數(shù)據(jù)。本篇我將帶領(lǐng)您深入了解如何使用C#編程語言結(jié)合HtmlAgilityPack,從HTML文檔中快速且準確地獲取文章標題。

          假設(shè)我們通過網(wǎng)絡(luò)爬蟲程序成功獲取了一個網(wǎng)頁的HTML源代碼:

          string htmlContent="<html><head><title>這是文章標題</title></head><body>介紹了主題和內(nèi)容...</body></html>";

          為了從這段HTML文本中定位并提取出文章標題,我們可以編寫如下的C#方法:

          // 定義一個靜態(tài)方法用于從HTML字符串中提取文章標題

          public static string ExtractTitle(string htmlContent)

          {

          // 創(chuàng)建一個HtmlDocument對象以解析加載的HTML內(nèi)容

          var htmlDocument=new HtmlDocument();

          htmlDocument.LoadHtml(htmlContent);

          // 使用XPath表達式精確匹配<head>標簽內(nèi)的<title>標簽節(jié)點

          var titleNode=htmlDocument.DocumentNode.SelectSingleNode("//head/title");

          // 如果找到了<title>節(jié)點,則返回其內(nèi)部文本內(nèi)容,并進行trim操作去除多余空白;否則返回提示信息

          return titleNode !=null ? titleNode.InnerText.Trim() : "未找到頁面標題";

          }

          接下來,在主程序入口處調(diào)用此方法并顯示提取結(jié)果:

          static void Main(string[] args)

          {

          // 假設(shè)此處的htmlContent是從網(wǎng)絡(luò)爬蟲抓取的實際HTML數(shù)據(jù)

          string pageTitle=ExtractTitle(htmlContent);


          // 輸出提取得到的文章標題

          Console.WriteLine($"文章標題: {pageTitle}");

          Console.WriteLine(new string('\n', 100)); // 輸出多行空白以便區(qū)分輸出內(nèi)容

          }


          可以看到這個代碼展示了C#與HtmlAgilityPack在HTML內(nèi)容解析方面的強大能力,不僅能準確無誤地從HTML文檔中摘取文章標題,而且具備極高的靈活性和擴展性。通過調(diào)整或增強XPath表達式,您可以輕松定位并抽取其他多種關(guān)鍵元素,比如正文、作者信息、發(fā)布日期等。面對日益復雜的數(shù)據(jù)抓取需求,這一技術(shù)手段將成為您的得力助手,助您從浩瀚的網(wǎng)頁信息海洋中篩選出有價值的精華內(nèi)容。不斷實踐和優(yōu)化此類解決方案,我們將在大數(shù)據(jù)時代更好地駕馭和利用網(wǎng)絡(luò)信息資源,實現(xiàn)更深層次的信息挖掘與應用。


          朋友們,如果你們覺得這個案例有用,那就盡情地使用它吧!別忘了關(guān)注我,我是代碼領(lǐng)域的詩人XY,一個樂于分享的人。我熱愛與大家分享我的知識和經(jīng)驗,幫助你們解決問題,激發(fā)你們的思考。我深信,只有通過分享和交流,我們才能不斷進步,不斷創(chuàng)新。若你對更多相關(guān)話題感興趣,或者在學習工作中遇到難題,請隨時留言給我,我會為你撰寫更多相關(guān)內(nèi)容,并盡我所能幫助你解決難題。

          們知道字符串(String)類型是 JavaScript 中的基本數(shù)據(jù)類型之一,也是最常用的數(shù)據(jù)類型啦。下面我們來學習一下關(guān)于字符串的屬性方法以及其的使用等。

          什么是字符串

          JavaScript 字符串其實很好理解,就是被包圍在單引號或雙引號中的任意字符。字符串可以用于存儲和處理文本。

          示例:

          例如像下面這樣聲明的變量都是字符串類型:

          var str1="123";
          
          var str2='12356';
          
          var str3="你好,俠課島";
          
          var str4='hello summer';
          
          var str5='good_boy';
          

          一般情況下字符串就是一個或多個字符組成,除此之外,我們還可以使用 new 關(guān)鍵字將字符串定義為一個對象:

          var name=new String("summer");
          
          console.log(name);  // 輸出:summer
          

          不過一般情況下我們最好不要創(chuàng)建 String 對象,因為這可能會導致執(zhí)行速度變慢。

          通過索引訪問字符串

          在 JavaScript 語言中我們可以通過索引來訪問字符串中的每個字符,字符串的索引也是從 0 開始,第一個字符索引值為 [0],第二個字符索引值為[1],以此類推。

          示例:

          例如下述代碼中,我們定義了一個字符串類型的變量 username,然后輸出變量中索引值為1的字符:

          var username="summer";
          
          console.log(username[1]);  // 輸出: u
          

          因為索引是從 0 開始計數(shù),那么索引為1,那應該就是字符串中的第二個字符串,也就是 u。

          獲取字符串的長度

          我們先來看下面這個字符串:

          var hobby="basketball";
          

          你能知道這個字符串的長度為多少嗎,其實你數(shù)一下就能知道,這個字符串的長度就是10。因為這個字符串有10個字符,所以它的長度為10。

          這里要注意的是,字符串里面包含的空格也是會計入長度的,有1個空格長度加1,2個空格長度加2。

          在 JavaScript 語言中,我們可以使用 length 屬性來獲取字符串長度,length 屬性用于返回字符串的長度(字符數(shù))。

          示例:

          例如獲取下面這個變量 hobby 的長度并輸出:

          var hobby="basketball";
          
          console.log(hobby.length);  // 輸出:10
          

          實際使用時,可能會遇到帶有空格的字符串,那么空格會計入字符的長度嗎,我們來看看:

          var str1="hello xkd";
          console.log(str1.length);  // 輸出:9
          

          通過輸出結(jié)果我們可以知道,空格也會計入字符串的長度的。

          從字符串的長度和索引的關(guān)系,我們可以得出一個結(jié)論,索引是從0開始,到length-1 結(jié)束的。

          轉(zhuǎn)義字符

          有些時候,字符串可能無法被解析,例如下面這個字符串:

          var str1="嘿,你好呀~,"俠課島"";
          console.log(str1);  // Uncaught SyntaxError: Unexpected identifier
          

          那這個時候要怎么辦呢,我們可以使用反斜桿 \ 來轉(zhuǎn)義字符串中的雙引號。

          示例:

          var str1="嘿,你好呀~,\"俠課島\"";
          
          console.log(str1);   //輸出:嘿,你好呀~,"俠課島"
          

          轉(zhuǎn)義字符\可以用于轉(zhuǎn)義撇號,換行,引號,等其他特殊字符。下面是一些可以用于轉(zhuǎn)義字符轉(zhuǎn)義的特殊字符:

          • \':單引號。
          • \":雙引號。
          • \:反斜杠。
          • \n:換行符。
          • \r:回車符。
          • \t:制表符(tab)。
          • \b:退格符。
          • \f:換頁符。

          字符串的方法

          字符串的方法有很多,下面我們簡單來看一些比較常用到的幾個方法:

          • toLowerCase():此方法用于把字符串轉(zhuǎn)為小寫,并返回新的字符串。
          var str1="Hello XKD";
          console.log(str1.toLocaleLowerCase());  
          
          //輸出: hello xkd
          
          • toUpperCase():此方法用于把字符串轉(zhuǎn)為大寫,并返回新的字符串。
          var str1="Hello XKD";
          console.log(str1.toUpperCase());  
          
          //輸出: HELLO XKD
          
          • toString():用于返回一個表示 String 對象的值。
          var str1="Hello";
          console.log(str1.toString());  
          
          //輸出: Hello
          
          • concat(): 用于連接兩個或多個字符串。
          var str1="Hello";
          var str2="xkd";
          console.log(str1.concat(str2));  
          
          //輸出: Helloxkd
          
          • indexOf():返回某個指定的子字符串在字符串中第一次出現(xiàn)的位置。
          var str1="Hello xkd, Congratulations on login!";
          console.log(str1.indexOf('xkd'));  
          
          //輸出: 6
          
          • lastIndexOf():返回某個指定的子字符串在字符串中最后出現(xiàn)的位置。
          var str1="Hello xkd, Congratulations on login!";
          console.log(str1.lastIndexOf('o'));   
          
          //輸出: 31
          
          • slice(): 返回字符串中提取的子字符串。
          var str1="Hello xkd, Congratulations on login!";
          console.log(str1.slice(6, 8)); 
          
          //輸出: xk
          
          • split():把字符串分割成字符串數(shù)組。
          var str1="Hello xkd, Congratulations on login!";
          console.log(str1.split(" "));  
          
          //輸出: ["Hello", "xkd,", "Congratulations", "on", "login!"]
          
          • substring():提取字符串中介于兩個指定下標之間的字符。
          var str1="Hello xkd, Congratulations on login!";
          console.log(str1.substring(11, 17));  
          
          //輸出: Congra
          
          • replace():在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。
          var str1="Hello xkd, Congratulations on login!";
          console.log(str1.replace("xkd", "summer"));  
          
          //輸出: Hello summer, Congratulations on login!
          
          • match():返回所有查找的關(guān)鍵字內(nèi)容的數(shù)組。

          主站蜘蛛池模板: 国产吧一区在线视频| 国产成人AV一区二区三区无码 | 清纯唯美经典一区二区| 久久精品国产一区| 国产伦精品一区二区三区四区 | 在线一区二区三区| 亚洲成AV人片一区二区密柚| 日韩AV在线不卡一区二区三区| 久久精品国产免费一区| 午夜精品一区二区三区在线视| 精品无人乱码一区二区三区| 老熟妇仑乱一区二区视頻| 丰满人妻一区二区三区视频53| 午夜在线视频一区二区三区| 亚洲国产av一区二区三区丶| 精品一区二区三区中文字幕| 三上悠亚国产精品一区| 一区二区在线免费视频| 日本一区二区三区在线网 | 国产一区中文字幕| 亚洲高清一区二区三区电影 | 亚洲AV成人精品日韩一区18p| 韩国资源视频一区二区三区| 亚洲熟妇成人精品一区| 亚洲一区二区三区在线观看精品中文| 无码精品人妻一区二区三区免费看 | 国产色情一区二区三区在线播放| 精品一区二区三区视频 | 无码日韩AV一区二区三区| 无码人妻av一区二区三区蜜臀| 亚洲一区精品视频在线| 国产乱码一区二区三区四| 精品无人区一区二区三区 | 精品无码国产AV一区二区三区| 亚洲熟女www一区二区三区| 波多野结衣AV一区二区三区中文 | 精品少妇一区二区三区视频| 亚洲无删减国产精品一区| 亚拍精品一区二区三区| 无码国产精品一区二区免费式影视| 亚洲国产美国国产综合一区二区 |