jquery – 当长度为0时如何防止用户在文本框中输入特殊字符?

前端之家收集整理的这篇文章主要介绍了jquery – 当长度为0时如何防止用户在文本框中输入特殊字符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下代码,当长度为0时,防止用户进入空格.现在,如果长度为0,那么如何阻止用户输入所有特殊字符(除了a-z A-Z 0-9以外的任何内容)?
$('#DivisionName').bind('keypress',function(e) {
    if($('#DivisionName').val().length == 0){
        if (e.which == 32){//space bar
            e.preventDefault();
        }
    }
});

这是我的文本框.

<input type="text" id="DivisionName" />

解决方法

字母和数字范围是(含):

> 97-122(a-z)
> 65-90(A-Z)
> 48 – 57(0-9)

这是你对比的对比.

if (e.which < 48 || 
    (e.which > 57 && e.which < 65) || 
    (e.which > 90 && e.which < 97) ||
    e.which > 122) {
    e.preventDefault();
}

或者,使用逆逻辑:

var valid = (e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122);
if (!valid) {
    e.preventDefault();
}

更新

即使如此,您仍然可能希望使用正则表达式来验证整个字段内容

if (/^[A-Z0-9]+$/i.test(value)) {
    // it looks okay now
}

或者通过更换不好的东西来修复现场:

var stripped = value.replace(/[^A-Z0-9]+/i,'');

猜你在找的jQuery相关文章