限制对特定字符的输入

时间:2017-11-08 14:14:45

标签: jquery input keycode

我想将输入字段限制为任何字母,句号和连字符。

我认为以下内容允许输入任何字母,但它不允许输入任何内容。这可能是我忽视的显而易见的事情。

$('input').on('keypress', function(event){
    if (event.keyCode > 65 || event.keyCode < 90)
        return false;
});

提前致谢!

2 个答案:

答案 0 :(得分:2)

要实现此目的,您可以使用正则表达式将输入的文本与您要允许的值进行比较,并删除您不想要的值。检查值时,您还应该使用keyup事件。您还可以使用inputblurpaste事件来确保所有浏览器都涵盖所有事件。试试这个:

$('input').on('input blur keyup paste', function() {
  $(this).val(function(i, v) {
    return v.replace(/[^a-z\.-]/ig, '');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="foo" type="text" /> 

答案 1 :(得分:0)

如果您只想使用数字,请尝试以下操作:

$('#text').keypress(function (e) {
var regex = new RegExp("^[a-zA-Z]\-.+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str)) {
    return true;
}

e.preventDefault();
return false;
});
相关问题