String与RegExp

一、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如下


图1

var result2 = str.match(myRe2);
result2如下

String与RegExp_第1张图片
图2

2.String.prototype.search()

返回索引(没匹配到则返回-1)

String与RegExp_第2张图片
图3

二、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

String与RegExp_第3张图片
图4

你可能感兴趣的:(String与RegExp)