如何防止javascript中的非字母数字输入?

$("#user").keyup(function(e){ var regx = /^[A-Za-z0-9]+$/; if (!regx.test('#user')) {$("#infoUser").html("Alphanumeric only allowed !");} );} 

#user是一个文本输入,如果用户输入除字母和数字之外的任何内容,我想要显示警告。
在上述情况下,无论键入什么,都会出现警告。

更改:

 if (!regx.test('#user')) 

 if (!regx.test( $(this).val() ) ) 

做:

 $("#user").keyup(function(e){ var str = $.trim( $(this).val() ); if( str != "" ) { var regx = /^[A-Za-z0-9]+$/; if (!regx.test(str)) { $("#infoUser").html("Alphanumeric only allowed !"); } } else { //empty value -- do something here } }); 

JS小提琴的例子

这是线

 regx.test('#user') 

你测试字符串#user ,这是一个字符不正确的字符串( # )。 所以它总是说不允许。

使用$(this).val()使用$(this).val() $("#user")的实际值

您必须使用#user元素值而不是’#user’字符串进行测试

 $("#user").keyup(function(e){ var regx = /^[A-Za-z0-9]+$/; if (!regx.test($('#user').val())) // . {$("#infoUser").html("Alphanumeric only allowed !");} );} 
 $('#alpha').bind('keypress', function (event) { var regex = new RegExp("^[a-zA-Z\b]+$"); var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); if (!regex.test(key)) { event.preventDefault(); return false; } }); $('#numeric').bind('keypress', function (event) { var regex = new RegExp("^[0-9\b]+$"); var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); if (!regex.test(key)) { event.preventDefault(); return false; } }); $('#alphanumeric').bind('keypress', function (event) { var regex = new RegExp("^[a-zA-Z0-9\b]+$"); var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); if (!regex.test(key)) { event.preventDefault(); return false; } }); $('#alphanumericspecial').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; } }); 
  function isNotAlphanumeric(){ return (! val.match(/^[a-zA-Z]+$/)) //return val.match(/^[a-zA-Z0-9]+$/) ? false : true; } 

所以如果val是字母数字,则返回false。 所以基于返回值采取适当的行动。 您可以在key up事件上调用此方法。