caoporm97国产在线视频|欧美性XXXXX精品|一本一道久久a久久精品综合开|精品久久久久久久久久久AⅤ|

十年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡(luò)微信公眾號 掃一掃關(guān)注
小程序
tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
掃一掃打開百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

南昌百恒網(wǎng)絡(luò)

RegExp實例方法

百恒網(wǎng)絡(luò) 2012-03-28 4904

RegExp對象的主要方法是exec(),該方法是專門為捕獲組而設(shè)計的。exec()接受一個參數(shù),即要應(yīng)用模式的字符串,然后返回包含第一個匹配項信息的數(shù)組;或者在沒有匹配項的情況下返回null。返回的數(shù)組雖然是Array的實例,但包含兩個額外的屬性:index和input。其中,index表示匹配項在字符串中的位置,而input表示應(yīng)用正則表達式的字符串。在數(shù)組中,第一項是與整個模式匹配的字符串,其他項是與模式中的捕獲組匹配的字符串(如果模式中沒有捕獲組,則該數(shù)組只包含一項)。請看下面的例子:

var text="mom and dad and baby";

var pattern=/mom( and dad( and baby)?)?/gi;

var matches=pattern.exec (text);

alert (matches.index); //O

alert {matches.input); //¨mom and dad and baby"

alert (matches[O]); //"mom and dad and baby"

alert (matches[1]); //”and dad and baby"

alert (matches[2]); //”and baby"

這個例子中的模式包含兩個捕獲組。最內(nèi)部的捕獲組匹配"and baby”,而包含它的捕獲組匹配”and dad”或者"and dad and baby”。當(dāng)把字符串傳人exec()方法中之后,發(fā)現(xiàn)了一個匹配項?!驗檎麄€字符串本身與模式匹配,所以返回的數(shù)組matchs的index屬性值為0。數(shù)組中的第一項是匹配的整個字符串,第二項包含與第一個捕獲組匹配的內(nèi)容,第三項包含與第二個捕獲組匹配的內(nèi)容。

對于exec()方法而言,即使在模式中設(shè)置了全局標(biāo)志(g),它每次也只會返回一個匹配項。在不設(shè)置全局標(biāo)志的情況下,在同一個字符串上多次調(diào)用exec()將始終返回第一個匹配項的信息。而在設(shè)置全局標(biāo)志的情況下,每次調(diào)用exec()則都會在字符串中繼續(xù)查找新匹配項,如下面的例子所示:

var text="cat, bat, sat, fat";

var patternl=/.at/;

var matches=patternl.exec(text);

alert (matches.index); //0

alert (matches[0]); //cat

alert (patternl.lastlndex);//o

matches =patternl.exec(text);

alert (matches .index)j //0

alert (matches[O]); //cat

alert (patternl.lastlndex); //0

var pattern2=/.at/g;

var matches=pattern2 .exec (text);

alert (matches .index); //o

alert (matches[0]); //cat

alert (pattern2 .lastlndex); //0

matches=pattern2.exec (text);

alert (matches .index); //5

alert (matches[0]); //bat

alert (pattern2 .lastlndex); //8

這個例子中的第一個模式patternl不是全局模式,因此每次調(diào)用exec()返回的都是第一個匹配項(”cat”)。而第二個模式pattern2是全局模式,因此每次調(diào)用exec()都會返回字符串中的下一個匹配項,直至搜索到字符串末尾為止。此外,還應(yīng)該注意模式的las tlndex屬性的變化情況。在全局匹配模式下,las tlndex的值在每次調(diào)用exec()后都會增加,而在非全局模式下則始終保持不變。

南昌網(wǎng)站制作公司前端開發(fā)工程師提醒IE 的JavaScript實現(xiàn)在lastlndex屬性上存在偏差,即使在非全局模式下,LastIndex屬性每次也會變。

正則表達式的第二個方法是test(),它接受一個字符串參數(shù)。在模式與該參數(shù)匹配的情況下返回true;否則,返回fa-se。在只想知道目標(biāo)字符串與某個模式是否匹配,但不需要知道其文本內(nèi)容的情況下,使用這個方法非常方便:因此,test()方法經(jīng)常被用在if語句中,如下面的例子所示:

var text="000-00-000:

var patter== /d{3}-d{2}-d{4}/;

if (patter.test(text))

alert ("The pattern was matched.");

在這個例子中,我們使用正則表達式來測試了一個數(shù)字序列。如果輸入的文本與模式匹配,則顯示一條消息。這種用法經(jīng)常出現(xiàn)在驗證用戶輸入的情況下,因為我們只想知道輸入是不是有效,至于它為什么無效就無關(guān)緊要了:

RegExp實例繼承的:o oca-eString()和toString()方法都會返回正則表達式的字面量,與創(chuàng)建正則表達式的方式無關(guān)。例如:

var pattern=new Reg_x:'{"\[bc\]at”, ”gi”);

alert (pattern.toString()); ,//[bc]at/gi

alert(pattern.toLocaleSting{)); ///[bc]at/gi

即使上例中的模式是通過調(diào)用RegExp構(gòu)造函數(shù)創(chuàng)建的,但toLocaleString()和toString()方法仍然會像它是以字面量形式創(chuàng)建的一樣顯示其字符串表示。

南昌做網(wǎng)站公司工程師提示,正則表達式valueOf()方法返回正則表表達式本身。之所以會出現(xiàn)這種奇怪的問題,部分原因是標(biāo)準(zhǔn)沒有就該訪法應(yīng)該返回什么做出明確規(guī)定。

希望本文對廣大站長或從事企業(yè)網(wǎng)站建設(shè)公司的團隊有所幫助,如對此不太理解的,可以與南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)技術(shù)部聯(lián)系。我們很高興與廣大站長和從事企業(yè)網(wǎng)站建設(shè)公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗。


400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
掃一掃打開百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
×