JavaScript之Regex初識2
1、什麼是Regex
Regex(Regular Expression)是一個描述字元模式的對象,ECMAcript的RegExp類表示Regex,而String和RegExp都定義了使用Regex強大的模式比對和文本檢索與替換的函數。
2、建立Regex的方式
第一種建立方式
var box=new RegExp('box'); //第一個是參數字串var box=new RegExp('box','ig') //第二個是可選模式修飾符第二種建立方式
var box=/box/; //直接用反斜線var box=/box/ig; //在第二個反斜線後面加上模式修飾符
3、測試Regex
RegExp對象包含兩個方法:test()和exec()用於測試字串匹配。
test()
test()方法在字串中尋找是否存在指定的Regex並返回布爾值,如果存在則返回true。不存在則返回false.
exec()
也用於在字串中尋找Regex,如果exec()方法執行成功,則返回包含該尋找字串的相關資訊,如果失敗,則返回null.
/*使用new運算子的test方法樣本*/var pattern=new RegExp('box','i'); //建立Regex,不區分大小寫var str="This is a Box!"; //建立要比對的字串alert(pattern.test(str)); //通過test()方法驗證是否匹配/*使用字面量方式的test方法樣本*/ var pattern=/box/i; //建立Regex,不區分大小寫var str="This is a Box!";alert(pattern.test(str));/*使用exec返回匹配數組*/var pattern=/box/i;var str="This is a Box!";alert(pattern.exec(str)); //匹配了返回數組,否則返回null
使用字串的Regex的方法
4、擷取控制
Regex元字元是包含特殊含義的字元。它們有一些特殊功能,可以控制匹配模式的方式,反斜線後的元字元將失去其特殊含義。
貪婪與懶惰
貪婪模式與懶惰模式的文法區別在於重複限定修飾符的後面是否有問號,有的話就是懶惰模式,否則就是貪婪模式。
貪婪量詞,是先吃盡所有字元,然後再一個一個地吐出來,直到匹配成功為止。
懶惰量詞,是從頭開始一個字元一個字元地吃,直到匹配成功為止。即貪婪是逐漸向前匹配,而懶惰是向後慢慢匹配。
例子:
var pattern=/[a-z]+?///?關閉了貪婪匹配,只替換了第一個var str='ajfifdjnfasdfdasdgh';var result=str.replace(pattern,'xxx');alert(result);//返回xxxjfifdjnfasdfdasdgh
var pattern=/8(.+?)8/g; //禁止了貪婪,開啟的全域 var str='this is 8abc8, that is 8abc8, there is 8abc8'; var result=str.replace(pattern,'$1'); document.write(result); //返回this is abc, that is abc, there is abc
總結:
個人認為,通過Regex在用戶端進行驗證,可以減輕到伺服器端後再驗證對伺服器的壓力。對Regex的認識還只是粗淺的認識。在以後還需要不斷的實踐來完善。