正則:
概念:描述或比對一系列符合某種規則的字元串
作用:資料驗證 内容檢索 内容替換 内容過濾
//建立正則對象
//通過執行個體化對象
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);
}