允许所有数字和字母,但仅允许此特殊字符(#‘()+-?!/&*»)

时间:2019-04-08 07:51:35

标签: javascript keycode

我只允许数字和字母以及JavaScript中的这个特殊字符(#‘()+-?!/&*»)。

此刻,我只有数字和字母允许,但我想要一个特殊的角色。 (#‘()+-?!/&*»)

    $("#test").keypress(function(e) {
        $("#error").remove();
        var k = e.keyCode,
        $return = ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32  || (k >= 49 && k <= 57));
          if(!$return) {
            $("<span/>",{
                "id" : "error",
                "html" : "No special caracters allow !"
            }).insertAfter($j(this));
            return false;
          }

    });

预先感谢您的快速回复。

3 个答案:

答案 0 :(得分:2)

使用e.key可能会更容易,它将为您提供实际的字符,而不是字符代码,然后您可以根据包含允许字符的正则表达式检查该字符:

const isOk = /[a-z0-9#‘)(+-?!\/&*»]/i.test(e.key);
if (!isOk) {
  // handle error
}

答案 1 :(得分:1)

您可以使用正则表达式:

[a-zA-Z0-9\[#()+-?!&*‘»]*

您可以在https://regex101.com/r/sxrFqq/2

上对其进行测试

答案 2 :(得分:0)

简单的正则表达式:

/[a-z0-9\#\'\(\)\+\-\/\&\*\»]/gi