2016-04-15 19 views
0

我想用户只能输入1-9aA-zZ如何使用jQuery限制某个表单域中的特殊字符

堆栈溢出有很多代码,但他们每个人都有一些错误。

例:

$('#username').bind('keypress', function (event) { 
    var regex = new RegExp("^[a-zA-Z0-9]+$"); 
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
    if (!regex.test(key)) { 
     event.preventDefault(); 


     return false; 
    } 
}); 

用户防止使用退格键或删除键!

+0

'用户防止使用退格键或删除键!'不,他”不是个关于你的发布代码。如果是这样,你在哪个浏览器上测试它? –

+0

我正在使用'firefox 43.0.1'; –

+0

你说的没错,FF可以阻止它 –

回答

0

你可以过滤它改编职系event.which(这是jQuery的标准化),使你的代码是:

var regex = /^[a-zA-Z0-9]+$/; 

$('#username').on('keypress', function(event) { 
    if (event.which === 8 || event.which === 0) return; 

    var key = String.fromCharCode(event.which); 
    return regex.test(key); 
}); 
+0

正如我在我的回答中所建议的,你也可以在'input'上建议'pattern =“[a-zA-Z0-9] +”'。 – Tushar

+0

@Tushar雅进行验证,但仍然不被Safari AFAIK支持,如果有问题 –

+0

在这种情况下,我们有JS验证器。 :)。几乎所有最新的浏览器都支持HTML5。 – Tushar

相关问题