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参数

评论(0)Web开发网
阅读(204)喜欢(1)JavaScript/Ajax开发技巧