国产精品成人VA在线观看,亚洲日韩在线中文字幕综合,亚洲AV电影天堂男人的天堂,久久人人爽人人爽人人av东京热

News新聞

業(yè)界新聞動態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁      JS/JQ/AJAX      javascript正則表達(dá)式詳解(基礎(chǔ)篇)

javascript正則表達(dá)式詳解(基礎(chǔ)篇)

標(biāo)簽: 發(fā)布日期:2014-02-20 00:00:00 741

javascript正則表達(dá)式詳解

定義:正則表達(dá)式是字符模式對象,也就是說它是一個對象(RegExp);

作用:js最初的作用是進(jìn)行表單的驗證,從而減輕服務(wù)器端的壓力和提升用戶的體驗!而正則表達(dá)式在表單的驗證中起到了極大的作用(當(dāng)然這絕不是唯一的作用),在項目中我也是經(jīng)常的用到,在這里就講解最基礎(chǔ)的正則表達(dá)式。

正則表達(dá)式的兩種表示方法

1,對象表示法

var regExp = new RegExp('box','img');

第一個參數(shù)是需要匹配的字符串,第二個參數(shù)是模式修飾符,i:在匹配的過程中忽略大小寫;g:全局匹配(而不是匹配到一個目標(biāo)字符串便停下來);m:多行匹配;

2,字面量表示方法

var regExp = /box/igm;后面的igm作用同上

正則表達(dá)式對象的兩個方法:

var regExp = /box/igm;

var str = "this is a box,that is a box too";

1,test方法

var bool = regExp.test(str);此時bool為true

它返回boolean值,如果匹配到字符串則返回true,如果沒有匹配到則返回false(這個方法很好使用,在項目中經(jīng)常用到);

2,exec方法

var arrResult = regExp.exec(str);此處的結(jié)果是一數(shù)組,數(shù)組中只有一個元素box;

該方法返回一個數(shù)組,而且不管是否開啟了全局匹配模式,該數(shù)組都只返回一個元素(這個有一個小小的bug,如果模式中用到了分組,那么情況就會改變,請看下面的例子),但是該數(shù)組有三個屬性,input整個的字符串參數(shù),this is a box,that is a box too;第二個參數(shù),index,返回匹配到的模式字符串的首字母的位置;lastIndex(該屬性在ie下面為undefined所以不做講解了);

 var regExp = /(\w+)\s(\d+)/img;
var str = "google 2014";
var arr = regExp.exec(str);此時arr中的元素有三個,第一個為google 2014,第二個為google第三個為2014

講解完這幾個方法之后就不得不講完字符串對象中的四個與正則表達(dá)式有關(guān)的方法,上面的兩個方法是正則表達(dá)式對象的方法,而接下來講解的方法則是字符串對象的方法:

1,match(patten);

var arrResult = str.match(regExp);此處返回的是一個數(shù)組,數(shù)組中含兩個box元素(因為正則表達(dá)式模式修飾符中包含了g);有人說正則表達(dá)式對象的exec是該方法的不要g的版本,我想說的是這個是不正確的,因為該方法返回的數(shù)組沒有input等屬性。

該方法返回數(shù)組,如若沒匹配得到則方法null;數(shù)組的元素是多個的,在開啟全局模式且匹配到多個目標(biāo)時;

2,search("regExp");

var index = str.search(regExp);此處返回10,因為第一個匹配到的目標(biāo)字符在字符串中的位置為10;

該方法返回目標(biāo)字符串的開始位置(匹配到的第一個),如果沒有匹配到則返回-1;該方法有一個特點就是模式修飾符加不加全局都是一樣的。該方法作用很大可以判斷某個字符串是否包含某個子串,在項目中也有很大的用途。

3,replace("regExp","str");

var str2 = str.replace(regExp,"bom");此處的結(jié)果str2的結(jié)果是this is a bom,that is bom too;

我想通過上面結(jié)果的公布你已經(jīng)對該方法有了深刻的了解;它就是用來替換字符串中的子串用的,第一個參數(shù)是正則表達(dá)式的模式,第二個是用來替換為該字符串的字符串。

4,split(regExp);

該方法我想大家都不陌生,它就是用來將字符串以某個模式轉(zhuǎn)換為數(shù)組用的,這里就不做詳細(xì)的解說的,它很好用也很簡單,與數(shù)組的join();方法相對應(yīng);

總結(jié)這四個方法:他們雖然可以用模式匹配作為參數(shù),當(dāng)然他們也可以用字符串作為參數(shù)

項目經(jīng)驗總結(jié):

在項目中遇到過很多的正則表達(dá)式的使用,但是大多都是進(jìn)行簡單的表單驗證,所以這些最基礎(chǔ)但是最實用的方法和技術(shù)需要你牢牢地掌握,它能給你帶來很大的好處;