js正则中方法的使用

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);//0
alert(arr.input);//aabbcc
alert(arr);//aabbcc,aabb,cc3:
var myReg = /abc/g;//执行全局匹配
var str = "hgbabchgabc";
alert(myReg.lastIndex);//0
alert(myReg.exec(str));//abc
alert(myReg.lastIndex);//6
alert(myReg.exec(str));//abc
alert(myReg.lastIndex);//11
alert(myReg.exec(str));//null
alert(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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值