Javascript 在inputbox中输入值时如何限制单个单词(其本身只有字符串而没有数字)

Javascript 在inputbox中输入值时如何限制单个单词(其本身只有字符串而没有数字),javascript,jquery,regex,Javascript,Jquery,Regex,Im使用此代码限制用户不输入特殊字符 $("input").keyup(function(){ var text=$(this).val(); $(this).val(text.replace(/[^\w\d\s]/,"")); }) 我想限制用户只输入一个单词,没有空格,也没有数字和特殊字符。像这样 myword #valid myword2 #invalid myword secondwor

Im使用此代码限制用户不输入特殊字符

$("input").keyup(function(){
         var text=$(this).val();
         $(this).val(text.replace(/[^\w\d\s]/,""));
    })
我想限制用户只输入一个单词,没有空格,也没有数字和特殊字符。像这样

myword                #valid
myword2              #invalid
myword secondword    #invalid


这里有一个jQuery插件,可以防止键入不在指定正则表达式中的键。如果你粘贴了一些东西,它也会起作用,但是替换也会起作用

$("body").delegate("[keyfilter]", "keypress", function(event) {
    var elem = $(this), filter = elem.attr('keyfilter');
    if (event.charCode === 0) {
      return;
    }
    try {
        if (!String.fromCharCode(event.charCode).match(new RegExp("[" + filter + "]"))) {
            event.preventDefault();
            event.stopImmediatePropagation();
        }
    } catch(e) {}
}).delegate("[keyfilter]", "paste", function(event) {
    var elem = $(this), filter = elem.attr('keyfilter');
    setTimeout(function() { elem.val(elem.val().match(new RegExp("[" + filter + "]"))[0]) }, 50);
});
使用方法:

<input type="text" keyfilter="A-Za-z" />

这里有一个jQuery插件,可以防止键入不在指定正则表达式中的键。如果你粘贴了一些东西,它也会起作用,但是替换也会起作用

$("body").delegate("[keyfilter]", "keypress", function(event) {
    var elem = $(this), filter = elem.attr('keyfilter');
    if (event.charCode === 0) {
      return;
    }
    try {
        if (!String.fromCharCode(event.charCode).match(new RegExp("[" + filter + "]"))) {
            event.preventDefault();
            event.stopImmediatePropagation();
        }
    } catch(e) {}
}).delegate("[keyfilter]", "paste", function(event) {
    var elem = $(this), filter = elem.attr('keyfilter');
    setTimeout(function() { elem.val(elem.val().match(new RegExp("[" + filter + "]"))[0]) }, 50);
});
使用方法:

<input type="text" keyfilter="A-Za-z" />


根据经验,在每个
键控器上无声地替换输入值不仅效率低下,而且极有可能令人恼火。我的建议是对
change
执行验证(如果输入无效,可能会显示警告),并在无效时防止
submit
。如果我在输入
qwerty
时意外地输入了
qwert6
,您的代码会在不通知我的情况下将其更改为
qwert
。如果这是一个用户名(或密码),如果我没有注意到的话,我可能无法登录。谢谢……根据经验,在每个
keyup
上悄悄地替换输入值不仅效率低下,而且很可能会令人恼火。我的建议是对
change
执行验证(如果输入无效,可能会显示警告),并在无效时防止
submit
。如果我在输入
qwerty
时意外地输入了
qwert6
,您的代码会在不通知我的情况下将其更改为
qwert
。如果这是一个用户名(或密码),如果我没有注意到的话,我可能无法登录。谢谢….will follow itSeems@Shef的版本也处理粘贴,至少在FX5中,我的意思是,他的
onkeyup文本。replace(/[^a-Za-z]/g')
也处理粘贴。所以我想知道你的插件没有处理什么,因为它简单得多,因此应该处理较少的浏览器或情况:)如果你使用mouseSeems@Shef的版本,它不会处理粘贴,至少在FX5中,我的意思是,他的
onkeyup文本。replace(/[^A-Za-z]/g',)
也会处理粘贴。所以我想知道你的插件不能处理什么,因为它非常简单,因此应该处理更少的浏览器或情况:)如果你使用鼠标,它不会