javascript正则RegExp,compile参数
javascript正则对象RegExp参数,正则对象方法RegExp.compile参数说明
RegExp对象使用方法
new RegExp(pattern, attributes);
参数
pattern:字符串或者正则表达式,如果是字符串,注意字符需要转义。
DEMO
<script> //参数为数字 var re = new RegExp("\\d{4}", 'g'); alert(re)// ==> /\d{4}/g re = new RegExp("\d{4}", 'g'); alert(re)// ==> /d{4}/g //参数为正则表达式 re = new RegExp(/\d{4}/, 'g'); alert(re)// ==> /\d{4}/g re = new RegExp(/\d{4}/g); alert(re)// ==> /\d{4}/g re = new RegExp(/\d{4}/g,'gi'); alert(re)// ==> /\d{4}/gi </script>
attributes :是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。
返回值
一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。
如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当 pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。
异常
SyntaxError - 如果 pattern 不是合法的正则表达式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。
TypeError - 如果 pattern 是 RegExp 对象,但没有省略 attributes 参数,抛出该异常。
RegExpObject.compile(regexp,modifier)使用方法
compile() 方法用于在脚本执行过程中编译正则表达式,替换换来的pattern内容。
参数 | 描述 |
---|---|
regexp | 正则表达式或者字符串(为字符串不需要前后的//斜杠,要不会被当做正则的内容,注意转移)。特别提醒:如果此参数为正则表但是,则不能传递modifier参数。传递modifier参数时,此参数必须为字符串,要不会报错。这个和RegExp构造函数不一样。 |
modifier | 规定匹配的类型。"g" 用于全局匹配,"i" 用于区分大小写,"gi" 用于全局区分大小写的匹配。 |
DEMO
<script> var re = /\d{4}/; re.compile(/\d{3}/); alert(re)//==>/\d{3} try { re.compile(/\d{2}/, 'g'); alert(re)//报错,为执行,执行到catch语句中 } catch(e){ alert(e)//==>TypeError: can't supply flags when constructing one RegExp from another } re.compile('\\d{2}', 'g'); alert(re)//==>/\d{2}/g </script>
加支付宝好友偷能量挖...
原创文章,转载请注明出处:javascript正则RegExp,compile参数