jQuery - 阻止用户键入字符'>'但允许句号



在电子邮件输入字段中,我正在使用正则表达式检查非法字符,如下所示:

$("#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

相关内容

  • 没有找到相关文章

最新更新