RegExp(pattern,attribute)方法解析:
1.参数
参数 pattern :一个字符串,指定了正则表达式的模式或其他正则表达式。
参数 attribute :一个可选的字符串,包含属性 "g"、"i" 和 "m","g"用于指定全局匹配,"i"用于区分大小写的匹配,"m"用于多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。
2.返回值
一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。
如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当 pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。
3.错误抛出
(1)SyntaxError :如果 pattern 不是合法的正则表达式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。
(2)TypeError :如果 pattern 是 RegExp 对象,但没有省略 attribute参数,抛出异常。
具体例子如下,建议进行对比学习:
(1)
var reg5=new RegExp('[0-5][0-9]','g'); //选择满足条件的两位数十位0-5、个位0-9,g是全局匹配
var str='Chinese:6,English:33,math:1';
var resStr=str.replace(reg5,'100'); //将满足条件的字符数据改为100
console.log(resStr);
实现结果:
(2)
var reg5=new RegExp('[0-5][0-9]','g');
var str='Chinese:06,English:33,math:1';
var resStr=str.replace(reg5,'100'); //和上个例子对比,必须是两位_
console.log(resStr);
实现结果: