整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript RegExp 對象

          JavaScript RegExp 對象

          RegExp:是正則表達式(regular expression)的簡寫。

          什么是 RegExp?

          正則表達式描述了字符的模式對象。

          當您檢索某個文本時,可以使用一種模式來描述要檢索的內容。RegExp 就是這種模式。

          簡單的模式可以是一個單獨的字符。

          更復雜的模式包括了更多的字符,并可用于解析、格式檢查、替換等等。

          您可以規定字符串中的檢索位置,以及要檢索的字符類型,等等。

          語法

          var patt=new RegExp(pattern,modifiers);

          或更簡單的方法

          var patt=/pattern/modifiers;

          • 模式描述了一個表達式模型。

          • 修飾符(modifiers)描述了檢索是否是全局,區分大小寫等。

          注意:當使用構造函數創造正則對象時,需要常規的字符轉義規則(在前面加反斜杠 \)。比如,以下是等價的:

          var re=new RegExp("\w+");

          var re=/\w+/;

          RegExp 修飾符

          修飾符用于執行不區分大小寫和全文的搜索。

          i - 修飾符是用來執行不區分大小寫的匹配。

          g - 修飾符是用于執行全文的搜索(而不是在找到第一個就停止查找,而是找到所有的匹配)。

          實例 1

          在字符串中不區分大小寫找"W3CSchool"

          var str="Visit W3CSchool";

          var patt1=/w3cschool/i;

          以下標記的文本是獲得的匹配的表達式:

          Visit W3CSchool

          實例 2

          全文查找 "is"

          var str="Is this all there is?";

          var patt1=/is/g;

          以下標記的文本是獲得的匹配的表達式:

          Is this all there is?

          實例 3

          全文查找和不區分大小寫搜索 "is"

          var str="Is this all there is?";

          var patt1=/is/gi;

          以下 標記的文本是獲得的匹配的表達式:

          Is this all there is?

          test()

          test()方法搜索字符串指定的值,根據結果并返回真或假。

          下面的示例是從字符串中搜索字符 "e" :

          實例

          var patt1=new RegExp("e");

          document.write(patt1.test("The best things in life are free"));

          由于該字符串中存在字母 "e",以上代碼的輸出將是:

          true

          當使用構造函數創造正則對象時,需要常規的字符轉義規則(在前面加反斜杠 \)

          實例

          var re=new RegExp("\w+");

          exec()

          exec() 方法檢索字符串中的指定值。返回值是被找到的值。如果沒有發現匹配,則返回 null。

          下面的示例是從字符串中搜索字符 "e" :

          實例 1

          var patt1=new RegExp("e");

          document.write(patt1.exec("The best things in life are free"));

          由于該字符串中存在字母 "e",以上代碼的輸出將是:

          e

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          RegExp 對象

          正則表達式是描述字符模式的對象。

          正則表達式用于對字符串模式匹配及檢索替換,是對字符串執行模式匹配的強大工具。

          語法

          var patt=new RegExp(pattern,modifiers);

          或者更簡單的方式:

          var patt=/pattern/modifiers;

          • pattern(模式) 描述了表達式的模式

          • modifiers(修飾符) 用于指定全局匹配、區分大小寫的匹配和多行匹配

          注意:當使用構造函數創造正則對象時,需要常規的字符轉義規則(在前面加反斜杠 \)。比如,以下是等價的:

          var re=new RegExp("\w+");var re=/\w+/;

          更多關于 RegExp 對象請閱讀我們的 JavaScript RegExp 對象。

          修飾符

          修飾符用于執行區分大小寫和全局匹配:

          修飾符描述
          i執行對大小寫不敏感的匹配。
          g執行全局匹配(查找所有匹配而非在找到第一個匹配后停止)。
          m執行多行匹配。

          方括號

          方括號用于查找某個范圍內的字符:

          表達式描述
          [abc]查找方括號之間的任何字符。
          [^abc]查找任何不在方括號之間的字符。
          [0-9]查找任何從 0 至 9 的數字。
          [a-z]查找任何從小寫 a 到小寫 z 的字符。
          [A-Z]查找任何從大寫 A 到大寫 Z 的字符。
          [A-z]查找任何從大寫 A 到小寫 z 的字符。
          [adgk]查找給定集合內的任何字符。
          [^adgk]查找給定集合外的任何字符。
          (red|blue|green)查找任何指定的選項。

          元字符

          元字符(Metacharacter)是擁有特殊含義的字符:

          元字符描述
          .查找單個字符,除了換行和行結束符。
          \w查找單詞字符。
          \W查找非單詞字符。
          \d查找數字。
          \D查找非數字字符。
          \s查找空白字符。
          \S查找非空白字符。
          \b匹配單詞邊界。
          \B匹配非單詞邊界。
          >\0<查找 NUL 字符。
          \n查找換行符。
          \f查找換頁符。
          \r查找回車符。
          \t查找制表符。
          \v查找垂直制表符。
          \xxx查找以八進制數 xxx 規定的字符。
          \xdd查找以十六進制數 dd 規定的字符。
          \uxxxx查找以十六進制數 xxxx 規定的 Unicode 字符。

          量詞

          量詞描述
          n+匹配任何包含至少一個 n 的字符串。
          n*匹配任何包含零個或多個 n 的字符串。
          n?匹配任何包含零個或一個 n 的字符串。
          n{X}匹配包含 X 個 n 的序列的字符串。
          n{X,Y}匹配包含 X 或 Y 個 n 的序列的字符串。
          n{X,}匹配包含至少 X 個 n 的序列的字符串。
          n$匹配任何結尾為 n 的字符串。
          ^n匹配任何開頭為 n 的字符串。
          ?=n匹配任何其后緊接指定字符串 n 的字符串。
          ?!n匹配任何其后沒有緊接指定字符串 n 的字符串。

          RegExp 對象方法

          方法描述FFIE
          compile編譯正則表達式。14
          exec檢索字符串中指定的值。返回找到的值,并確定其位置。14
          test檢索字符串中指定的值。返回 true 或 false。14

          支持正則表達式的 String 對象的方法

          方法描述FFIE
          search檢索與正則表達式相匹配的值。14
          match找到一個或多個正則表達式的匹配。14
          replace替換與正則表達式匹配的子串。14
          split把字符串分割為字符串數組。

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          、exec()方法

          RegExp對象的主要方法是exec(),該方法是專門為捕獲組而設計的。

          exec()接受一個參數,即要應用模式的字符串,然后返回包含第一個匹配項信息的數組,或者在沒有匹配項的情況下返回null。

          返回的數組雖然是Array的實例,但包含兩個額外的屬性:index和input。其中,index表示匹配項在字符串中的位置。input表示應用正則表達式的字符串。

          在數組中,第一項是與整個模式匹配的字符串,其他項是與模式中的捕獲項匹配的字符串。如果模式中沒有捕獲組,則該數組只包含一項。

          var text="mom and dad and baby";
          var pattern=/mom( and dad( and baby)?)?/gi;
          var matches=pattern.exec(text);
          console.log(matches);	//[ "mom and dad and baby", " and dad and baby", " and baby" ]
          console.log(matches.index);	//0
          console.log(matches.input);	//mom and dad and baby
          

          對于exec()方法而已,即使在模式中設置了全局標志(g),它每次也只會返回一個匹配項。在不設置全局標志的情況下,在同一個字符串上多次調用exec()將始終返回第一個匹配項的信息。而在設置全局標志的情況下,每次調用exec()則都會在字符串中繼續查找新匹配項。如下:

          var text="cat, bat, sat, fat";
          //不設置全局標志g
          var pattern1=/.at/;
          var matches=pattern1.exec(text);
          console.log(matches);	//[ "cat" ]
          console.log(matches.index);		//0
          console.log(pattern1.lastIndex);	//0
          matches=pattern1.exec(text);
          console.log(matches);	//[ "cat" ]
          console.log(matches.index);		//0
          console.log(pattern1.lastIndex);	//0
          //設置全局標志g
          var pattern2=/.at/g;
          var matches=pattern2.exec(text);
          console.log(matches);		//[ "cat" ]
          console.log(matches.index);		//0
          console.log(pattern2.lastIndex);	//3
          matches=pattern2.exec(text);
          console.log(matches);		//[ "bat" ]
          console.log(matches.index);		//5
          console.log(pattern2.lastIndex);	//8
          

          二、test()方法

          test()方法接受一個字符串參數,在模式與該參數匹配的情況下返回true,否則返回false。在只想知道目標字符串與某個模式是否匹配,但不需要知道其文本內容的情況下,使用這個方法非常方便。因此,test()方法經常被用在if語句中。這種用法經常出現在驗證用戶輸入的情況下,因為我們只想知道輸入是不是有效,至于它為什么無效就無關緊要了。如下:

          var text="000-00-0000";
          var pattern=/\d{3}-\d{2}-\d{4}/;
          if(pattern.test(text)){
           alert("The pattern was matched.");
          }
          

          三、繼承的方法

          RegExp實例繼承的toLocaleString()和toString()方法都會返回正則表達式的字面量,與創建正則表達式的方式無關。正則表達式的valueOf()方法返回正則表達式本身。如下:


          主站蜘蛛池模板: 国产日韩一区二区三区| 色欲AV蜜臀一区二区三区 | 国产精品99无码一区二区| 日韩精品一区二区三区中文精品| 国产在线观看一区二区三区精品| 韩国一区二区三区| 久久成人国产精品一区二区 | 国产精品亚洲综合一区在线观看| 久久精品国产免费一区| 日韩精品一区二区三区老鸭窝| 亚洲综合在线成人一区| 三上悠亚一区二区观看| 亚洲一区在线观看视频| 在线播放精品一区二区啪视频| 波多野结衣免费一区视频 | 亚洲综合国产一区二区三区| 香蕉在线精品一区二区| 成人精品一区二区三区不卡免费看 | 中文字幕无线码一区二区| 亚洲综合一区国产精品| 精品国产一区二区三区在线观看| 中文字幕一区二区三区永久| 精品成人乱色一区二区| 亚洲综合一区二区| 无码国产亚洲日韩国精品视频一区二区三区 | 国产无码一区二区在线| 性色AV一区二区三区天美传媒| 痴汉中文字幕视频一区| 性无码免费一区二区三区在线| 国产一区三区二区中文在线| 亚洲一区中文字幕久久| 久久亚洲中文字幕精品一区| 97se色综合一区二区二区| 国产一区二区精品久久91| 婷婷亚洲综合一区二区| 亚洲视频在线一区| 无码人妻精品一区二区在线视频 | 国产伦精品一区二区三区在线观看 | 中文字幕在线观看一区二区 | 国产亚洲福利精品一区二区| 精品一区二区久久久久久久网站|