我希望在下面的函数中为允许的字符添加(.
):
$(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 ?,/ - 。] /:字符类
中的范围乱序
我尝试过添加(.
)&还尝试添加(\.
),但仍然是同样的错误。
请帮助我在哪里添加(.
)?
答案 0 :(得分:7)
请注意,-
应位于字符类的开头或结尾,或者必须使用反斜杠\
进行转义,因为它表示范围,如a-z
/[()a-zA-Z0-9 ?,/.-]/
此外,如果需要动态正则表达式,只需使用上面的正则表达式文字,如果不是,则必须删除分隔符/ /
并使用实际的正则表达式[()a-zA-Z0-9 ?,/.-]
作为{{1可以在String
构造函数中使用。