繁体   English   中英

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

[英]How to apply Regular Expression to input using jQuery?

我有以下代码可以强制用户在输入中仅输入数字:

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

但它使我可以键入非数字并且在控制台中没有显示错误。

这工作:

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
  }       
});

您可以在不使用正则表达式的情况下执行此操作:

type="number"添加到您的输入中,您应该做得很好。

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

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

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM