博客 / 詳情

返回

javaScript正則表達式

JavaScript RegExp 對象

RegExp:是正則表達式(regular expression)的簡寫
正則表達式用於對字符串模式匹配及檢索替換,是對字符串執行模式匹配的強大工具

語法:

var patt=new RegExp(pattern,modifiers);

或者

var patt=/pattern/modifiers;

其中:
pattern:代表正則表達式
modifiers:代表修飾符

修飾符:

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

案例(匹配hello、忽略大小寫):

var str = "HELLO world!";
var patt1 = /hello/i;
document.write(str.match(patt1));

輸出:

HELLO

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

// +表示匹配一次或多次
var re = new RegExp("\\w+");
var re = /\w+/;

方括號
用於查找某個範圍內的字符:

[abc]     查找方括號之間的任何字符。
[^abc]    查找任何不在方括號之間的字符。
[0-9]     查找任何從 0 至 9 的數字。
[a-z]     查找任何從小寫 a 到小寫 z 的字符。
[A-Z]     查找任何從大寫 A 到大寫 Z 的字符。
[A-z]     查找任何從大寫 A 到小寫 z 的字符。
[adgk]    查找給定集合內的任何字符。
[^adgk]   查找給定集合外的任何字符。

元字符
擁有特殊含義的字符

.    查找單個字符,除了換行和行結束符。
\w    查找數字、字母及下劃線。
\W    查找非單詞字符。
\d    查找數字。
\D    查找非數字字符。
\s    查找空白字符。
\S    查找非空白字符。
\b    匹配單詞邊界。
\B    匹配非單詞邊界。
\0    查找 NULL 字符。
\n    查找換行符。
\f    查找換頁符。
\r    查找回車符。
\t    查找製表符。
\v    查找垂直製表符。

量詞
定義正則匹配的次數

?      匹配0次或1次
+      匹配1次或多次
*      匹配0次或多次
{n}    匹配n次
{n,}   匹配n次或n次以上
{n,m}  匹配n次到m次

RegExp 對象方法

  • test()
    搜索字符串指定的值,根據結果返回true或false

      var patt1=new RegExp("a");
      document.write(patt1.test("abc"));

    輸出:

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

      var patt1=new RegExp("a");
      document.write(patt1.exec("abc"));

    輸出:

      a
    
  • toString()
    返回正則表達式的字符串

      var patt = new RegExp("RUNOOB", "g");
      var res = patt.toString();
      document.write(res);

    輸出:

      /RUNOOB/g
    

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

  • search()
    檢索匹配正則表達式的值的個數

      var str="Visit Runoob!"; 
      var n=str.search("Runoob");
      document.write(n);

    輸出:

      6
    
  • match()
    匹配滿足正則表達式的值,如果沒有找到任何匹配的文本,返回 null。否則,它將返回一個數組

      var str="abcabcdabcde"; 
      var n=str.match(/abc/g);
      document.write(n);

    輸出:

      [abc,abc,abc]
  • replace()
    替換與正則表達式匹配的子串。

      var str="hello world!";
      var n=str.replace("hello","你好");
      document.write(n);

    輸出:

      你好 world!
  • split()
    把字符串分割為字符串數組。

      var str="2022-1-1";
      var n=str.split("-");
      document.write(n);

    輸出:

      [2022,1,1]
user avatar fulng 頭像 mo_or 頭像 buxiyan 頭像 async_wait 頭像 yexiaobai_616e2b70869ae 頭像 jacky_579db85b83432 頭像 hufeng 頭像 liujiaxiaobao 頭像 codecraft 頭像 tencent_blueking 頭像 iot_full_stack 頭像 alps2006 頭像
14 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.