如何使用jQuery应用正则表达式输入?

时间:2014-04-18 14:33:57

标签: javascript jquery regex validation input

我有这段代码强制用户只在输入中输入数字:

$("#Day").keyup(function()
{
 var test =new RegExp( "/\D/G");
 if(test.test($("#Day").val()))
     $("#Day").val(replace("/\D/G" , ""));
});

但它让我输入非数字,并且没有在控制台中显示错误。

2 个答案:

答案 0 :(得分:3)

这有效:

JSFIDDLE:http://jsfiddle.net/4RWBU/

我在某些方面编辑了原始代码。我将事件类型从keyup更改为keydown。如果我们使用keydown,我们实际上可以阻止从显示屏按下的按键,但我不认为可以使用keyup实现该按键(该密钥已经显示)。

$("#Day").keydown(function(e)
{
  var test = /[0-9]/; //regex
  var value = String.fromCharCode(e.keyCode); //get the charcode and convert to char
  if (value.match(test)) { 
     return false; //dont display key if it is a number
  }       
});

答案 1 :(得分:2)

您可以在没有正则表达式的情况下执行此操作:

type="number"添加到您的输入中,您应该可以。

但是,如果你想支持IE和HTML 4用户,你也可以这样做:

$("#Day").keyup(function () {
    var test = /\D/;
    if (test.test($(this).val())) {
        $("#Day").val($(this).val().replace(/\D/g, ""));
    }
});

Demo