Javascript 将点(.)添加到正则表达式

Javascript 将点(.)添加到正则表达式,javascript,asp.net,regex,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.preventDefau

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

$(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;
    }
});
但是,每次我添加它时,都会出现错误:

未捕获的语法错误:无效的正则表达式:/[()a-zA-Z0-9 ?,/-.]/:字符类中的范围无序

我只尝试了添加(
)&也尝试了使用(
\。
)添加它,但仍然出现相同的错误


请您帮助我添加这个(
)?

注意,
-
应该在字符类的开头或结尾,或者必须用反斜杠转义,因为它指示的范围与
a-z
中的范围相同

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

另外,如果需要动态正则表达式,只需使用如上所述的正则表达式文字,否则必须删除分隔符
/
,并使用实际正则表达式
[()a-zA-Z0-9?,/。-]
作为
字符串
,可在
RegExp
构造函数中使用。

请注意,
-
应该位于字符类的开头或结尾,或者必须用反斜杠
\
转义,因为它指示的范围与
a-z
中的范围相同

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

另外,如果需要动态正则表达式,只需像上面那样使用正则表达式文本,否则必须删除分隔符
/
,并使用实际正则表达式
[()a-zA-Z0-9?,/.-]
作为
字符串,可以在
RegExp
构造函数中使用。

谢谢,这非常好用,谢谢您的解释。一旦时间限制到期,将标记为答案。@Josh!很高兴能帮上忙:)谢谢,这很好用,谢谢你的解释。一旦时间限制到期,将标记为答案。@Josh!很高兴能帮忙:)