防止输入字段显示与正则表达式

时间:2018-02-12 12:27:00

标签: javascript html

我正在检查输入字段中输入的每个字符,而不是某些正则表达式。输入框中的第一个字符可能与第二个字符具有不同的“条件”,依此类推。例如:我想允许第一个字符中的数字1-3,以及第二个字符中的5-9。

我正在将event.key与正则表达式进行比较。一切都很好,但我不知道如何防止“错误”值出现在输入字段中。错误的值应该导致......好吧,绝对没有。

html“pattern”属性当然不会帮助我,因为我需要在每次按键时执行此检查。

如何防止输入的字符实际被“同化”为输入值?

编辑:这是我到目前为止的一些代码..:

 element.bind('keyup', (e) => {


            var patt = new RegExp(/[0-3]/);
            var res = patt.test(e.key);
            console.log(res)
            if(!res){                
              //do something...          

            })

2 个答案:

答案 0 :(得分:1)

return false如果按下的键与您的regExp匹配。

答案 1 :(得分:0)

这里我想阻止文本框中的空格



<label>Username</label>
<input type="text" id="username" name="username" placeholder="Username">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
  $(function () {
      var uname = $("input#username");
      var func = function () {
        uname.val(uname.val().replace(/\s/g, ''));
        uname.val(uname.val().toLowerCase());
      }
      uname.keyup(func).blur(func);
  });
</script>
&#13;
&#13;
&#13;

在这种情况下,您可以应用逻辑。