一、String的方法
1.String.prototype.match()
参数为正则表达式,返回值为一个数组(未匹配到返回null),正则表达式没有g的情况下结果与RegExp.exec()相同,数组第一个为匹配的全部字符串,后边依次为括号中的分组捕获,另外有两个属性,input为源匹配字符,index为匹配到字符串的位置。有g的情况下,返回匹配的所有结果。
var myRe1 = /ab*/g;
var myRe2 = /a(b)*/;
var str = 'abbcdefabh';
var result1 = str.match(myRe1);
result1如下
var result2 = str.match(myRe2);
result2如下
2.String.prototype.search()
返回索引(没匹配到则返回-1)
二、RegExp的方法
1.RegExp.prototype.exec()
当正则表达式有g时,可以多次匹配同一字符串,lastIndex(RegExp对象的属性)会变化,并且会从lastIndex开始匹配(test方法也会更新lastIndex)。
var myRe = /ab*/g;
var str = 'abbcdefabh';
var myArray;
while ((myArray = myRe.exec(str)) !== null) {
var msg = 'Found ' + myArray[0] + '. ';
msg += 'Next match starts at ' + myRe.lastIndex;
console.log(msg);
}
结果如下
Found abb. Next match starts at 3
Found ab. Next match starts at 9
2.RegExp.prototype.test()
返回true或者false