在正则表达式中添加DOT(。)

时间:2014-12-15 09:12:16

标签: javascript asp.net regex

我希望在下面的函数中为允许的字符添加(.):

$(id).bind('keypress', function(event) {
    var regex = new RegExp("[()a-zA-Z0-9 ?,/-]");
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
    if (!regex.test(key)) {
        event.preventDefault();
        return false;
    }
});

但是,每次添加它都会出现错误:

  

Uncaught SyntaxError:无效的正则表达式:/ [()a-zA-Z0-9   ?,/ - 。] /:字符类

中的范围乱序

我尝试过添加(.)&还尝试添加(\.),但仍然是同样的错误。

请帮助我在哪里添加(.)?

1 个答案:

答案 0 :(得分:7)

请注意,-应位于字符类的开头或结尾,或者必须使用反斜杠\进行转义,因为它表示范围,如a-z

/[()a-zA-Z0-9 ?,/.-]/

此外,如果需要动态正则表达式,只需使用上面的正则表达式文字,如果不是,则必须删除分隔符/ /并使用实际的正则表达式[()a-zA-Z0-9 ?,/.-]作为{{1可以在String构造函数中使用。