WEB开发网
开发学院网页设计JavaScript 理顺 JavaScript (19) - 正则表达式对象 RegExp 阅读

理顺 JavaScript (19) - 正则表达式对象 RegExp

 2010-09-14 13:42:18 来源:WEB开发网   
核心提示: 关于 exec 的全局匹配//首先,exec不会像String.match那样方便的完成全局匹配;不过这恰是它的强大之处.//第一个例子没有指定g;执行了三次exec结果都是一样的varstr,p1,arr;str='1:abc;2:Abc;3:aBc;4:abC;5:ABc;6:

关于 exec 的全局匹配

//首先, exec 不会像 String.match 那样方便的完成全局匹配; 不过这恰是它的强大之处.

//第一个例子没有指定 g; 执行了三次 exec 结果都是一样的
var str, p1, arr;
str = '1:abc;2:Abc;3:aBc;4:abC;5:ABc;6:aBC;7:AbC;8:ABC';
p1 = /(ab)(c)/i;
arr = p1.exec(str);
alert(arr); //abc,ab,c
arr = p1.exec(str);
alert(arr); //abc,ab,c
arr = p1.exec(str);
alert(arr); //abc,ab,c

alert(p1.lastIndex); //5


//这个例子使用了全局匹配, 结果不一样了; 
var str, p2, arr;
str = '1:abc;2:Abc;3:aBc;4:abC;5:ABc;6:aBC;7:AbC;8:ABC';
p2 = /(ab)(c)/ig;
arr = p2.exec(str);
alert(arr); //abc,ab,c
arr = p2.exec(str);
alert(arr); //Abc,Ab,c
arr = p2.exec(str);
alert(arr); //aBc,aB,c

alert(p2.lastIndex); //17

//可以这样遍历所有匹配:
var str, p, arr;
str = '1:abc;2:Abc;3:aBc;4:abC;5:ABc;6:aBC;7:AbC;8:ABC';
p = /(ab)(c)/ig;
while ((arr = p.exec(str)) != null) {
 alert(arr); //可在此提取子表达式的匹配结果, 这个功能只有 exec 可以.
}

系列文章:

理顺 JavaScript (1) - 准备工具

上一页  1 2 3 4  下一页

Tags:理顺 JavaScript 正则

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接