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

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

 2010-09-14 13:42:18 来源:WEB开发网   
核心提示: 正则表达式对象的 2 个方法之 exec//exec返回的是匹配结果,是个数组varstr,p,arr;str='1:abc;2:Abc;3:aBc;4:abC;5:ABc;6:aBC;7:AbC;8:ABC';p=/abc/i;arr=p.exec(str);alert(

正则表达式对象的 2 个方法之 exec

//exec 返回的是匹配结果, 是个数组
var str, p, arr;
str = '1:abc;2:Abc;3:aBc;4:abC;5:ABc;6:aBC;7:AbC;8:ABC';

p = /abc/i;
arr = p.exec(str);
alert(arr); //abc

//怎么能知道返回的 arr 是个数组, 测试一下:
alert(arr instanceof Array); //true
alert(arr[0]);        //abc

//何必要用数组表达? 因为正则表达式中可能会有"子表达式", 譬如:
p = /(ab)(c)/i; 

//子表达式是用 () 区分的, 上面表达式包含两个子表达式; 用于 exec 函数时将返回 length = 3 的数组:
//arr[0]: 匹配整个表达式的结果;
//arr[1]: 匹配第一个子表达式的结果;
//arr[2]: 匹配第二个子表达式的结果...

//包含子表达式的例子(继续使用上面的字符串 str)
p = /(ab)(c)/i;
arr = p.exec(str);
alert(arr);   //abc,ab,c

//遍历这个数组
for (var i=0; i < arr.length; i++) {
 alert(arr[i]); //abc / ab / c
}

//这个返回的数组还有两个属性: index(匹配到的内容在字符串中的位置)、input(原始字符串)
alert(arr.index); //2; 因为是 0 起, 也就是 3
alert(arr.input); //1:abc;2:Abc;3:aBc;4:abC;5:ABc;6:aBC;7:AbC;8:ABC

//如果找不到, exec 会返回 null; 这对继续探讨很有用
p = /abcde/i;
alert(p.exec(str)); //null

上一页  1 2 3 4  下一页

Tags:理顺 JavaScript 正则

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