天天看點

正則相關的知識分享

正則:

概念:描述或比對一系列符合某種規則的字元串

作用:資料驗證 内容檢索 内容替換 内容過濾

//建立正則對象

//通過執行個體化對象

letreg=newRegExp("正規表達式"+變量,"模式修正符")

模式修正符:g:global全局(下一次執行從上一次之後位置) i:不區分大小寫m:可以換行

//通過字面量的方式

letreg=/ 正規表達式 /模式修正符

/為定界符正則對象的常用方法:

reg.test(str) 檢測正則對象是否能夠比對str 傳回true false

reg.exec(str) 檢測正則對象是否能夠比對str 如果能比對傳回一個擁有特殊屬性的數組,如果不能比對傳回null

正規表達式:

使用場景:1.正則對象 2.str.split(正則對象) 3.str.replace(正則對象,被替換的内容) 4.str.search(正則對象)

原子:正規表達式中最小的内容

\d 0-9

\w 數字字母下劃線

\s 空白,\n,\r,\t

\D 除了0-9以外的字元

\W 除了數字字母下劃線以外的字元

\S 除了空白,\n,\r,\t

原子表:[ ]

letreg=/[a-z]/g比對小寫字母

letreg=/[a-zA-Z]/g比對所有字母

元字元:

. 所有的字元

| 或

原子組:() 原子組的内容會預設存儲在記憶體中,在後面如果一模一樣可以\1調用

letreg=/(山|陝)西/g

letreg=/<div>box<\/div>/===letreg=/<(div)>box<\/\1>/ // \為轉譯字元

(?:xxx)不将xxx存儲到記憶體中,并且不可調用

正則中的數量:

*:0個或多個

letreg=/\d*/g

+:1個或多個

?:0個或1個

{11}:11個 {15,18}:15到18個 {6,}六個或六個以上個

貪婪吝啬: *? 加問号将盡可能取多變成盡可能少取

邊界判斷:

^開始 $結束

letreg=/^\d{7}$/

\b 單詞邊界

\B 非單詞邊界

模式修正符:

g全局

i不區分大小寫

m換行,多行

舉例:

//正則漢字字母數字下劃線傳回bool

function isNotEmpty(str) {

var regex =newRegExp("^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z]|[0-9]|[_]){1,10}$");

return regex.test(str);

}