Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将输入限制为特定字符_Jquery_Input_Keycode - Fatal编程技术网

Jquery 将输入限制为特定字符

Jquery 将输入限制为特定字符,jquery,input,keycode,Jquery,Input,Keycode,我想将输入字段限制为任何字母、句点和连字符 我原以为下面可以输入任何字母,但不允许输入任何内容。这可能是我忽略的一些明显的东西 $('input').on('keypress', function(event){ if (event.keyCode > 65 || event.keyCode < 90) return false; }); $('input')。打开('keypress',函数(事件){ 如果(event.keyCode>65 | | eve

我想将输入字段限制为任何字母、句点和连字符

我原以为下面可以输入任何字母,但不允许输入任何内容。这可能是我忽略的一些明显的东西

$('input').on('keypress', function(event){
    if (event.keyCode > 65 || event.keyCode < 90)
        return false;
});
$('input')。打开('keypress',函数(事件){
如果(event.keyCode>65 | | event.keyCode<90)
返回false;
});

提前谢谢

要实现这一点,您可以使用正则表达式将输入的文本与希望允许的值进行比较,并删除任何不允许的值。检查值时,还应使用
keyup
事件。您还可以使用
输入
模糊
粘贴
事件来确保所有浏览器都覆盖了所有事件。试试这个:

$('input')。在('input blur keyup paste',function()上{
$(this).val(函数(i,v){
返回v.替换(/[^a-z\.-]/ig');
});
});

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

$('#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;
});

数字?OP明确指出:
将输入字段限制为任何字母、句点和连字符
更新了正则表达式。此解决方案是否优于
preventDefault()
解决方案?哪个更快/更好?
preventDefault()
不适用于
paste
事件,应该考虑到这一点,因为很容易绕过
keydown
/
keyup
基于事件的限制