1. var patt=/pattern/attributes,参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。
2. var patt=new RegExp(pattern, attributes),如new RegExp('a','g')等价于/\a/g
String.prototype.replaceAll = function(a, b){
return this.replace(new RegExp(a,'g'),b);
}
console.log('aabbcc'.replaceAll('b','B'));
进入整体exec和match方法
一、exec方法:
如果未找到匹配,则返回值为 null;如果找到了匹配,则返回一个结果数组,
此数组的第 0 个元素是与正则表达式相匹配的文本,第1个元素与
RegExpObject的第1个子表达式相匹配的文本(如果有的话),第2个元
素是与RegExpObject的第2个子表达式相匹配的文本(如果有的话),以
此类推。二、match方法:
如果match方法没有找到匹配,返回null;如果找到匹配返回一个数组并且更新全局RegExp对象的属性以反映匹配结果。
三、例:
1.
var str = "1234 5678";
var patt = /(\d{4}) (\d{4})/;
var rst = patt.exec(str);
console.log(rst); --["1234 5678", "1234", "5678"]
console.log(rst[2]+' '+rst[1]); --5678 1234
console.log(RegExp.$2+' '+RegExp.$1); --5678 1234
2.
var str = "1234 5678";
var patt = /(\d{4}) (\d{4})/;
var rst = str.match(patt);
console.log(rst); --["1234 5678","1234","5678"]
console.log(rst[2]+' '+rst[1]); --5678 1234
console.log(RegExp.$2+' '+RegExp.$1); --5678 1234
3.
var str = "1234 5678";
var patt = /(\d{4}) (\d{4})/;
var rst = str.replace(patt,"$2 $1");
console.log(rst); --5678 1234
console.log(RegExp.$2+' ' +RegExp.$1); --5678 1234