js正则中方法的使用

来源:互联网 发布:java程序调试的步骤 编辑:程序博客网 时间:2024/06/07 05:53

RegExp对象的方法:

1.exec():该方法用于检索字符串中的正则表达式的匹配。
返回包含第一个匹配项信息的数组。如果未找到匹配,返回 null。在数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串(如果模式中没有捕获组,则该数组只包含一项)。
该数组具有额外的两个属性,index和input,index表示匹配项在字符串中的位置,input表示应用正则表达式的字符串。
在模式中如果未设置全局标志(g),在同一个字符串上多次调用exec()将始终返回第一个匹配项的信息,而设置全局标志,每次调用exec()则会在字符串中继续查找新匹配项。

1var myReg = /abc/;var str = "hgbabchgabc";var arr = myReg.exec(str)alert(arr);//abc(为一个数组对象,即["abc"])alert(arr[0]);//abc(为一个字符串)2var myReg = /aa(bb(cc)?)?/g;var str = "aabbcc";var arr = myReg.exec(str);alert(arr.index);//0alert(arr.input);//aabbccalert(arr);//aabbcc,aabb,cc3:var myReg = /abc/g;//执行全局匹配var str = "hgbabchgabc";alert(myReg.lastIndex);//0alert(myReg.exec(str));//abcalert(myReg.lastIndex);//6alert(myReg.exec(str));//abcalert(myReg.lastIndex);//11alert(myReg.exec(str));//nullalert(myReg.lastIndex);//0/*从lastIndex指定的位置开始检索字符串,找到匹配后lastIndex置于匹配文本最后一个字符的下一位置。当找不到匹配的文本时,lastIndex置为0。只有执行全局匹配是lastIndex才起作用。*/

2.test(): 检测是否包含匹配的文本,有返回true,无返回false。

String对象的方法:

1.search(): 返回相匹配的子串的起始位置,若无返回-1。
search() 方法不执行全局匹配,它忽略标志 g。同时忽略 regexp 的 lastIndex 属性,并且总是从字符串的开始进行检索,只返回第一个匹配的位置。

2.match(): 找到一个或多个正则表达式的匹配,返回存放匹配子串的数组。支持全局匹配。若未匹配返回null。

例:var myReg = /abc/g;var str = "hgbabchgabc";alert(str.match(myReg));//abc,abc//即返回一个数组[abc, abc];

3.replace(): 该方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

例:var myReg = /abc/g;var str = "abczzabc";newStr = str.replace(myReg,"w");//replace方法并未对str本身进行修改。alert(newStr);//wzzw

4.split(): 该方法用于把一个字符串分割成字符串数组。允许传入正则表达式。

例:var str = "a22b";var arr = str.split(/[a-z]/);alert(arr);//,22,//可以理解为将字母换成','该数组为['',2,2,''];附:该方法和join()相反,join用于把数组中的所有元素放入一个字符串,可传入参数,用该参数将数组元素分割,形成新的字符串。例:var arr = [1,2,3];var str = arr.join("a");alert(str);//1a2a3
原创粉丝点击