在输入框中输入值时如何限制单个单词(本身只有字符串而不是数字)

时间:2011-07-13 12:06:28

标签: javascript jquery regex

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

$("input").keyup(function(){
         var text=$(this).val();
         $(this).val(text.replace(/[^\w\d\s]/,""));
    })

我想限制用户只输入一个没有空格的单词,也没有数字和特殊字符。像这样

myword                #valid
myword2              #invalid
myword secondword    #invalid

2 个答案:

答案 0 :(得分:2)

这是一个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" />

答案 1 :(得分:1)

$(this).val(text.replace(/[^A-Za-z]/g,''));

Test it here »