"use strict";
String.prototype.match2 = function (re) {
var initLastIndex = re.lastIndex; //保存正则对象的初始lastIndex
re.lastIndex = 0; 将其置为0已让exec从头开始匹配
if (re.global) { // 有g标志,返回所有的匹配(不包含捕获)组成的数组,就算没有匹配的也会返回一个空数组
var result = [];
var match;
while (match = re.exec(this)) {
result.push(match[0]);
if (match[0] == '') {
re.lastIndex++; //正则的最后的下标加一
}
}
re.lastIndex = initLastIndex; // 还原re原来的值
return result;
}
else { //没有G标志的情况下,返回字符串的第一个匹配
var match = re.exec(this); //将匹配的结果拿到
re.lastIndex = initLastIndex; // 还原re原来的值
return match; //再将结果返回 可能是空可以可能返回一个数组
}
};