RegExp說(shuō)明
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
new RegExpASP正則表達(dá)式 <Execute 描述:對(duì)指定的字符串執(zhí)行正則表達(dá)式搜索。 語(yǔ)法:object.Execute(string) Execute object:必需的??偸且粋€(gè) string:必需的。要在其上執(zhí)行正則表達(dá)式的文本字符串。 說(shuō)明:正則表達(dá)式搜索的設(shè)計(jì)模式是通過(guò) <Test方法> 描述:對(duì)指定的字符串執(zhí)行一個(gè)正則表達(dá)式搜索,并返回一個(gè) 語(yǔ)法:object.Test(string) Test object:必需的??偸且粋€(gè) string:必需的。要執(zhí)行正則表達(dá)式搜索的文本字符串。 說(shuō)明:正則表達(dá)式搜索的實(shí)際模式是通過(guò)RegExp對(duì)象的Pattern屬性來(lái)設(shè)置的。RegExp.Global屬性對(duì)Test方法沒(méi)有影響。如果找到了匹配的模式,Test方法返回True;否則返回False。 <Global屬性> 描述:設(shè)置或返回一個(gè) 語(yǔ)法:object.Global object <IgnoreCase屬性> 描述:設(shè)置或返回一個(gè)Boolean值,指明模式搜索是否區(qū)分大小寫(xiě)。 語(yǔ)法:object.IgnoreCase object <Pattern屬性> 描述:設(shè)置或返回被搜索的正則表達(dá)式模式。 語(yǔ)法:object.Pattern Pattern object:必需的??偸且粋€(gè) searchstring:可選的。被搜索的正則字符串表達(dá)式。它可能包含設(shè)置部分表格中的各種正則表達(dá)式字符。 設(shè)置:在書(shū)寫(xiě)正則表達(dá)式的模式時(shí)使用了特殊的字符和序列。下表描述了可以使用的字符和序列,并給出了實(shí)例。 字符描述: 配。"\n"與換行符匹配。序列"\\"與"\"匹配,"\("與"("匹配。 ^ $ * + ? .:匹配換行符以外的任何字符。 (pattern) 或 x|y:匹配 配 {n}:n 配,但是可以?quot;foooood"中的前兩個(gè)o匹配。 {n,} {n,m} [xyz] 配"plain"中的"a"。 [^xyz] [a-z] [^m-z] 在"m"到"z"之間的任何字符匹配。 \b \B \d \D \f \n \r \s \f\n\r\t\v]"。 \S \t \v \w \W \num \n:匹配 例如,"\11" \xn:匹配n,其中n是一個(gè)十六進(jìn)制的換碼值。十六進(jìn)制換碼值必須恰好為兩個(gè)數(shù)字長(zhǎng)。例如,"\x41"匹配"A"。"\x041"等價(jià)于"\x04" 好了,常用的方法和屬性就是這些了,上面的語(yǔ)法介紹的已經(jīng)很詳細(xì)了,我們就沒(méi)有必要在羅嗦了,接下來(lái)我們來(lái)看看在具體的例子里面如何使用這些方法和屬性來(lái)校驗(yàn)數(shù)據(jù)的合法性,我們還是舉個(gè)例子吧,比如,我們想要對(duì)用戶輸入的電子郵件進(jìn)行校驗(yàn),那么,什么樣的數(shù)據(jù)才算是一個(gè)合法的電子郵件呢?我可以這樣輸入: uestc95@263.net,當(dāng)然我也會(huì)這樣輸入:xxx@yyy.com.cn,但是這樣的輸入就是非法的:xxx@@com.cn或者@xxx.com.cn,等等,所以我們得出一個(gè)合法的電子郵件地址至少應(yīng)當(dāng)滿足以下幾個(gè)條件: 1. 2. 3. 4. 5. 所以根據(jù)以上的原則和上面表中的語(yǔ)法,我們很容易的就可以得到需要的模板如 下:"(\w)+[@]{1}(\w)+[.]{1,3}(\w)+" 接下來(lái)我們仔細(xì)分析一下這個(gè)模板,首先“\w”表示郵件的開(kāi)始字符只能是包含下劃線的單詞字符,這樣,滿足了第三個(gè)條件;“[@]{1}”表示在電子郵件中應(yīng)當(dāng)匹配并且只能匹配一次字符“@”,滿足了條件一;同樣的“[.]{1,3}”表示在電子郵件中至少匹配1個(gè)至多匹配3個(gè)字符“.” 表示結(jié)尾的字符只能是包含下劃線在內(nèi)的單詞字符,滿足了條件五;模板中間的 “(\w)+”滿足了條件四。 然后,我們就直接調(diào)用剛才的那個(gè)函數(shù)CheckExp("(\w)+[@]{1}(\w)+[.]{1} (\w)+",待校驗(yàn)的字符串)就好了,如果返回True就表示數(shù)據(jù)是合法的,否則就是不正確的,怎么樣,簡(jiǎn)單吧。我們還可以寫(xiě)出來(lái)校驗(yàn)身份證號(hào)碼的模板:"([0-9]) {15}";校驗(yàn)URL的模板:"^http://{1}((\w)+[.]){1,3}"等等;我們可以看到,這些模板為我們提供了很好的可重利用的模塊,利用自己或者別人提供的各種模板,我們就可以方便快捷的進(jìn)行數(shù)據(jù)的合法性校驗(yàn)了,相信你一定會(huì)寫(xiě)出非常通用的模板的。 這樣,我們只要定制不同的模板,就可以實(shí)現(xiàn)對(duì)不同數(shù)據(jù)的合法性校驗(yàn)了。所以,正則表達(dá)式對(duì)象中最重要的屬性就是:“Pattern”屬性,只要真正掌握了這個(gè)屬性,才可以自由的運(yùn)用正則表達(dá)式對(duì)象來(lái)為我們的數(shù)據(jù)校驗(yàn)進(jìn)行服務(wù)。 JavaS <script var //替換錯(cuò)別字“終古”為“中國(guó)” //并返回替換后的新字符 //原字符串stringObj的值沒(méi)有改變 var alert(newstr); </script> |