我正在使用正则表达式验证名称。每当我按一个键我正在调用keyup并验证..如果它与正则表达式匹配我正在制作空的特定字符..但是在浏览器的页面上匹配的键不是空的同时..它只等到下一个keyup cal ..
如何解决? 任何人都可以帮助我。一旦看到下面的plunker.its没有工作,但我已经编写了类似的代码
//js
$(".inputType").bind("keyup",function(e){
var str = $(".inputType").val();
if(str!=undefined)
{
for(i=0;i<str.length;i++)
{
if(!str.chatAt(i).match("^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$"))
{
str = str.replace(str.charAt(i),"");
}
}
}
$(".inputType").val(str);
});
});
答案 0 :(得分:0)
这是plnk
您可以像这样定义处理程序:
var handler = function(e){
var str = $(".inputType").val();
if(str!=undefined)
{
for(i=0;i<str.length;i++)
{
if(!str.chatAt(i).match("^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$"))
{
str = str.replace(str.charAt(i),"");
}
}
}
$("#inputType").val(str);
};
$(".inputType").bind("keyup", handler);
});
您可以在handler()
答案 1 :(得分:0)
我试过这个,这对我有用
$(document).ready(function()
{
$(document).on("keyup",".inputType",function(e)
{
var str = $(this).val();
var pattern = /^[a-zA-Z0-9]+$/;
if(str!=undefined)
{
for(i=0;i<str.length;i++)
{
if(!pattern.test(str.charAt(i)))
{
str = str.replace(str.charAt(i),"");
}
}
}
$(".inputType").val(str);
});
});
总是喜欢使用基于文档的jquery格式,因为它可以帮助您在覆盖页面时运行代码