RegExp实例

2018-11-20  本文已影响0人  Leaf_Ysm
exec() 方法用于检索字符串中的正则表达式的匹配。

exec()接受一个参数,既要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null;

exec()即使在模式中设置了全局模式(g),也只返回一个匹配项
在不设置全局模式下,在同一个字符串上多次调用exec()将始终返回第一匹配信息;在设置全局模式下,每次调用exec()则会在字符串中继续查找新匹配项。

举个例子看一下(模式没有设置全局模式):
var text = "cat, bat, sat, fat,aaa";
var pattern1 = /.at/;
var matches = pattern1.exec(text);
 console.log(matches.index); //0
 console.log(matches[0]); //cat
 console.log(matches.input); //cat, bat, sat, fat,aaa
 console.log(pattern1.lastIndex);//0
 matches = pattern1.exec(text);
 console.log(matches.index);//0
 console.log(matches[0]);//cat
 console.log(matches.input);//cat, bat, sat, fat,aaa
 console.log(pattern1.lastIndex);//0
举另一个例子看一下(模式设置全局模式):
var text = "cat, bat, sat, fat,aaa";
var pattern1 = /.at/g; //设置了全局模式
var matches = pattern1.exec(text);
 console.log(matches.index); //0
 console.log(matches[0]); //cat
 console.log(matches.input); //cat, bat, sat, fat,aaa
 console.log(pattern1.lastIndex);//3
 matches = pattern1.exec(text);
 console.log(matches.index);//5
 console.log(matches[0]);//bat
 console.log(matches.input);//cat, bat, sat, fat,aaa
 console.log(pattern1.lastIndex);//8

以上例子中还用到 lastIndex 方法, 这里简单讲解一下,这个方法会返回下一个搜索匹配想的字符位置;

除了exec()方法,正则表达式还提供了test()方法;
test()接受一个字符串,在匹配成功时,返回true,失败时,返回false;所以这个方法常用在if语句中;
上一篇下一篇

猜你喜欢

热点阅读