如何在文本框中替换(复制粘贴)非字母字符

Vig*_*esh 2 html javascript jquery

我的要求就像我需要替换文本框中的非字母字符我只有当用户在文本框中输入时才能实现它,但是如果用户复制粘贴一些像这样的值

"asd5653tYgh45Ghgs34gthth65TGhd"

值不会按预期替换.这里65没有被替换,要替换它我需要再次进行keyup或keypress,之后只更换值.我附上了jsfiddle链接供您参考.

码:

HTML:

Name :<input type='text' id='txtName' />
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$("#txtName").on('keyup keypress',function(){
    var pattern = /^[a-zA-Z]+$/;
    var txtval = $("#txtName").val();
    if(!pattern.test(txtval)){
       $(this).val($(this).val().replace(/[^a-zA-Z]+/,''))
    }
});
Run Code Online (Sandbox Code Playgroud)

链接:

演示小提琴

Ric*_*ert 6

这是你的解决方案:http://jsfiddle.net/9knXh/9/ 新的pregmatch是/[^a-zA-Z]+/gg的结尾意味着做除了只有1所以新的代码:

$(this).val($(this).val().replace(/[^a-zA-Z]+/g,''))
Run Code Online (Sandbox Code Playgroud)

编辑:我还为使用鼠标右键的人添加了更改