正規表示式

2022-07-01 22:45:11 字數 2314 閱讀 999

正則建立的兩種方式:

1.字面量var pattern=//;    一般都用字面量方法,簡單直接;

2. 建構函式var pattern=new regexp();裡面可接受兩個引數,第乙個是將要匹配的字元,第二是修飾符i;優勢:可以用變數動態新增引數

i:不區分大小寫,

g全域性匹配,

m多行匹配

\n表示換行,多行匹配必須有乙個全域性匹配,沒有m,只有g,系統則不會看見換行,只有一行

pattern.test(str);  返回true/false,是否含有匹配的值

patter.exec(str)    將匹配的值,放入陣列並返回,沒找到返回null

非全域性匹配下,exec()始終匹配第乙個

全域性匹配下,exec()也只是匹配乙個,多次執行exec()會依次匹配項對應的值,直到null停止,再執行exec()又會從頭執行

str.replace(pattern,替換的**)

特殊點1:用$1來代替分組的內容,可在替換中設定css樣式

特殊點2: 不管有沒有分組,$0就表示pattern裡的內容,匿名函式的返回值就是替換的文字,也有兩個引數function(all,letter){},all表示str的內容,letter表示匹配到的值

str.match(pattern); 不過找到乙個或多個正規表示式的匹配時,會一次性返回乙個陣列

str.search(pattern);    僅僅只是返回匹配到的第乙個下標,與是否有全域性匹配無關,不存在返回-1 

str.split(pattern);        將字串轉化為陣列

1   . 匹配除了 \n \r \u2028或\u2029  以外所有的字元

2   * 0個或多個   + 至少1個  ?0個或1個

3    轉義字元:反斜槓\ 

將特殊含義轉化為字面量含義;

4   ^開頭  $結尾

5  字元集合,'或者'的含義  ;    [^]取反

6  邊界符: \b     非 \w(字母或數字或下劃線)都被稱為邊界

7  分組  () ;

(?:)表示非捕獲分組,不再單獨匹配分組; 

\1  \2

8  選擇:|    也可以叫'或'

9  零寬斷言:正向(後面)        負向(前面)

/[a-z]/;在a~z的範圍內匹配

/[\u4e00-\u9fa5]/;中文漢字匹配

/[a-za-z]/;同時在a~z大小寫中匹配

/[a-za-z0-9]/; 可組合

常用字元類簡寫:

\d匹配數字,相當於 /0-9/

\d匹配非數字,相當於/^0-9/

\w匹配字母或數字或下劃線,不能匹配漢字,漢字:[\u4e00-\u9fa5]

\w匹配任意不是字母、數字、漢字或下劃線的字元

\s匹配任意的空白符,如空格、換行符、製表符等

\s匹配任意不是空白符的字元

.(號)

匹配除了換行符以外的任意字元,大概就是匹配任意字元

匹配方括號中的第乙個字元

[^]匹配非方括號中的所有字元的第乙個

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...