在电子邮件输入字段中,我正在使用正则表达式检查非法字符,如下所示:
$("#reg_email").keyup(function(event)
{
var regex = /[()-/+{|}\[]?!*+^$<>&#~"'%=_:;]/g;
if ($("#reg_email").val().match(regex))
{
$("#reg_email").notify("Illegal characters: n( ) - / \ + { } | [ ] ? ! * + ^ $ < > & # ~ % = _ : ; '",{position:"right", className:"warn", autoHideDelay: autoHideDelay});
this.value = this.value.replace(regex, "");
}
});
下面是标记:
<input id="reg_email" type="email" class="form-control placeholder" placeholder="" name="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{2,3}$" required>
但是我注意到现在我无法在输入字段中输入句号字符,这不是我想要的,因为电子邮件地址将包含句号。我知道">"与句号具有相同的键代码,但目前我正在努力寻找另一种方式。
我怎样才能实现这一点?谢谢
你的集合中有)-/
,这将创建一个与)*+,-./
匹配的范围(根据 ASCII 表(,而不仅仅是字面上)-/
字符。转义-
或将其放在字符类的开头或结尾,如以下示例所示:
[()-/+{|}\[]?!*+^$<>&#~"'%=_:;] # escaped -
[-()/+{|}\[]?!*+^$<>&#~"'%=_:;] # hyphen at start of class
[()/+{|}\[]?!*+^$<>&#~"'%=_:;-] # hyphen at end of class