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

时间:2013-01-15 10:55:00

标签: javascript jquery regex

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

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

5 个答案:

答案 0 :(得分:14)

变化:

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 Fiddle示例

答案 1 :(得分:2)

这是行

regx.test('#user')

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

使用$("#user")

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

答案 2 :(得分:2)

您必须使用#user元素值而不是'#user'字符串

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

答案 3 :(得分:2)

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

答案 4 :(得分:0)

   function isNotAlphanumeric(){
        return (! val.match(/^[a-zA-Z]+$/))
        //return val.match(/^[a-zA-Z0-9]+$/) ? false : true;
   } 

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