js中的正則表達式比起C#中的正則表達式要弱很多,但基本夠用了
1定義正則表達式
2關於驗證的三個這則表達式方法
3正則表達式式的轉義字符
1定義正則表達式
在js中定義正則表達式很簡單,有兩種方式,一種是通過構造函數,一種是通過//,也就是兩個斜槓。
例如
使用構造函數定義正則表達式,注意大小寫,負責就會不起作用。由於構造函數的參數是一個字符串,也可以是兩個斜槓的方式定義,遇到一些特殊字符就需要使用進行轉義
通過雙斜槓的方式定義同樣的正則表達式
復制代碼 代碼如下:
可以和構造函數達到同樣的效果,但仔細分析,發現,通過構造函數需要更多的轉義字符
2關於驗證的三個正則表達式方法
使用正則表達式的主要有字符串的方法match,正則表達式的方法exec,test
正則表達式方法test測試給定的字符串是否滿足正則表達式,返回值是bool類型的,只有真和假,如果只是單純的判斷,不需要其他的處理,可以使用尤其是驗證時。
正則表達式方法exec測試給定的字符串是否滿足正則表達式,返回匹配到的字符串,如果沒有匹配的則返回null,和test基本一致,如果需要獲取匹配的各個子字符串,可以使用下標的方式,把上邊的test的例子可以改寫如下
match其實是字符串的方法,但參數確是一個正則表達式,把上邊的例子改寫後,如下
其實字符串類還有多個函數可以傳遞正則表達式,split,search,replace等但這些方法已經不適合驗證了。
3正則表達式式的轉義字符
在正則表達式中會經常出現轉義字符,例如問號?在正則表達式中有特殊的含義,如果需要匹配問號?就需要轉義,使用轉義字符反斜槓
如下兩個都是匹配問號開頭的一段字符串
function test(){
var text="?test=1&ww=2&www=3";
var re = /^?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;// ?表示配置問號?
// var re =new RegExp( "^?(w{1,}=w{1,}&){1,}w{1,}=w{1,}");// ?表示配置問號?
var result= re.exec(text);
if(result)
{
alert("ok");
alert(result);
alert(result[0]+",0");
alert(result[1]+",1");
}else
{
alert("err");
}
}