1. 程式人生 > >正則相關的知識分享

正則相關的知識分享

正則:

概念:描述或匹配一系列符合某種規則的字串

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

//建立正則物件 
//通過例項化物件 
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);

}