正規表示式總結

2021-10-03 07:50:09 字數 1520 閱讀 6226

定義乙個字串:var str = "abcdefg"

建立正則物件:

var pattern=/abc/  <=>  var pattern = new regexp("abc")

用建構函式建立時,可使用字串拼接:new regexp("a"+"b"+"c")

正則物件的方法:

pattern.test(str)  返回布林值

pattern.exec(str)  返回字串

igmi  ->  ignorecase 忽略大小寫,正則預設區分大小寫

var pattern=/abc/i  <=>  new regexp("abc","i")

g  ->  global  全域性匹配  多次exec可匹配不同位置的匹配值,返回的匹配陣列中的index為匹配位置

轉義字元:

\n  <=>  \x0a  匹配換行,後者用ascii表示

\t  匹配製表符

\s  匹配空格

\s  除空格、製表符外的字元

\b  匹配單詞邊界,如:/abc\b/  以c為單詞邊界

\w  <=> [a-za-z0-9]

\w <=> [^a-za-z0-9]

\d <=> [0-9]

特殊字元

.  匹配除換行符以外的任意字元

自定義匹配,僅匹配乙個字元

[^abc]  匹配除了a,b,c以外的任意字元

[a-c]  匹配a-c

[ \u4e00-\u9fa5]  匹配中文

[a-ca-c]  匹配a,b,c及其大寫形式

/[ab]/  <=>  /a|b/ 

()  分組匹配

(abc)  匹配字串abc

(ab)c  若匹配成功,使用exec可以返回陣列

(ab)c\1 <=> (ab)c(ab)

字尾 或  指定個數a或個數範圍[a,b]

?  匹配個數為0或1

+  匹配個數大於或等於1

*  匹配個數大於等於0

?的用法

字元首尾匹配

^  首匹配

$  尾匹配

/^abc$/

注:當^在中時,表示取反

前瞻性匹配

abc(?=def)  若匹配的字串為abcdef,則返回abc

abc(?!def)  若匹配的字串為abc***,其中***不為def,則返回abc

string物件中與正則相關的方法

str.search(pattern)  返回匹配的位置

str.match(pattern)  以陣列形式,返回匹配值,只有全域性匹配時,才會一次性把所有匹配到的值都放入陣列中

str.split(pattern)  以pattern為標誌來分割字串

str.replace(str1,str2)  把str中的str1部分替換為str2

str.replace(str1,function(){})  匹配到一次str1,就執行一次function,若function(a)有引數a,則a為返回的匹配值

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

非負整數 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...

正規表示式總結

正規表示式用於操作字串的規則,這些規則由一些符號所組成。使用正規表示式可以進行更複雜的操作,而且這種複雜的操作要比方法短的多。功能 1,匹配。使用的是string類中的matches方法。2,切割。使用的string類split方法。3,替換。4,查詢。1,將正則規則通過pattern類中的stat...

正規表示式總結

常用正規表示式總結 w w w 驗證 號碼 d d d 正確格式為 x x xx x xx x 和 xx 驗證身份證號 15位或18位數字 d d 驗證一年的12個月 0?1 9 1 0 2 正確格式為 01 09 和 1 12 驗證乙個月的31天 0?1 9 1 2 0 9 30 31 正確格式為...