定义正则表达式
var reg = /a/;
reg = new RegExp("a");
reg = /a/g;
reg = new RegExp("a", "g");
上面两组,每组之间是等效的。
RegExp的第二个参数接收的是匹配模式。(g全局匹配,i不区分大小写,m执行多行匹配)
test
RegExp的方法,匹配成功返回true,否则返回false。
var reg = /a/;
var str = "sasaad";
console.log(reg.test(str));
match
这是String的方法,会返回匹配到的字符串,并将其作为一个数组返回。
var reg = /a+/;
var str = "sasaad";
console.log(str.match(reg)); //a
如果指定g(全局globle)匹配模式,则会将全部匹配到的数据打包成一个数组返回。
var reg = /a+/g;
var str = "sasaad";
console.log(str.match(reg)); //(2) ["a", "aa"]
exec
是RegExp的方法,会返回一个长度为1的数组。
var reg = /a+/g;
var str = "sasaad";
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
输出
["a", index: 1, input: "sasaad", groups: undefined]
["aa", index: 3, input: "sasaad", groups: undefined]
null
若不指定g,则每次都返回第一个匹配到的值
var reg = /a+/;
var str = "sasaad";
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
输出
["a", index: 1, input: "sasaad", groups: undefined]
["a", index: 1, input: "sasaad", groups: undefined]
["a", index: 1, input: "sasaad", groups: undefined]