最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js正則表達(dá)式中test,exec,match方法的區(qū)別說明

 更新時間:2014年01月29日 09:23:10   作者:  
本篇文章主要是對js正則表達(dá)式中test,exec,match方法的區(qū)別進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助

js正則表達(dá)式中test,exec,match方法的區(qū)別說明

test
test 返回 Boolean,查找對應(yīng)的字符串中是否存在模式。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(reg.test(str)); // true


exec
exec 查找并返回當(dāng)前的匹配結(jié)果,并以數(shù)組的形式返回。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
var arr = reg.exec(str);
如果不存在模式,則 arr 為 null,否則 arr 總是一個長度為 1 的數(shù)組,其值就是當(dāng)前匹配項。arr 還有三個屬性:index 當(dāng)前匹配項的位置;lastIndex 當(dāng)前匹配項結(jié)束的位置(index + 當(dāng)前匹配項的長度);input 如上示例中 input 就是 str。


exec 方法受參數(shù) g 的影響。若指定了 g,則下次調(diào)用 exec 時,會從上個匹配的 lastIndex 開始查找。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(reg.exec(str)[0]);
alert(reg.exec(str)[0]);
上述兩個輸出都是 1a?,F(xiàn)在再看看指定參數(shù) g:
var str = "1a1b1c";
var reg = new RegExp("1.", "g");
alert(reg.exec(str)[0]);
alert(reg.exec(str)[0]);
上述第一個輸出 1a,第二個輸出 1b。


match
match 是 String 對象的一個方法。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(str.match(reg));
match 這個方法有點像 exec,但:exec 是 RegExp 對象的方法;math 是 String 對象的方法。二者還有一個不同點,就是對參數(shù) g 的解釋。
如果指定了參數(shù) g,那么 match 一次返回所有的結(jié)果。
var str = "1a1b1c";
var reg = new RegExp("1.", "g");
alert(str.match(reg));
//alert(str.match(reg)); // 此句同上句的結(jié)果是一樣的
此結(jié)果為一個數(shù)組,有三個元素,分別是:1a、1b、1c。

JavaScript中經(jīng)常用到正則表達(dá)式, 而正則表達(dá)式中經(jīng)常用到Match和Test這兩個函數(shù),當(dāng)然還有Exec. 這里以代碼實例來區(qū)分它們之間的不同吧.

Match Example

復(fù)制代碼 代碼如下:

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs = str.match(regexp);
//rs= Array('A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e');

Test Example
復(fù)制代碼 代碼如下:

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs = regexp.test(str);
// rs = true; boolean

Exc Example
復(fù)制代碼 代碼如下:

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs;
while ((rs = regexp.exec(str)) != null)
{
    document.write(rs);
    document.write(regexp.lastIndex);
    document.write("<br />");
}

OUTPUT
---------------------------------
A    1
B   2
C   3
D   4
E   5
a   27
b   28
c   29
d   30
e   31


Another   Exc Example
復(fù)制代碼 代碼如下:

var regexp = /ab*/g;
var str = "abbcdefabh";
var rs;
while ((rs = regexp.exec(str)) != null)
{
    document.write(rs);
    document.write(regexp.lastIndex);
    document.write("<br />");
}

OUTPUT
---------------------------------
abb   3
ab     9

相關(guān)文章

最新評論

长春市| 郁南县| 麻栗坡县| 伊金霍洛旗| 道真| 靖江市| 乐平市| 乌鲁木齐县| 大悟县| 沐川县| 北海市| 高雄市| 上杭县| 屯留县| 永州市| 白朗县| 葫芦岛市| 大渡口区| 庄河市| 朝阳县| 屏南县| 腾冲县| 安国市| 义马市| 永济市| 德阳市| 临朐县| 南丹县| 二连浩特市| 白城市| 昭通市| 岳池县| 惠东县| 义马市| 江口县| 阿勒泰市| 长春市| 阳东县| 长岭县| 常熟市| 青河县|