我的要求就像我需要替换文本框中的非字母字符我只有在用户在文本框中键入时才能实现它,但是如果用户复制粘贴一些像这样的值
"asd5653tYgh45Ghgs34gthth65TGhd"
值没有按预期替换。这里 65 没有被替换,要替换它我需要再次执行 keyup 或 keypress ,之后只替换值。我附上了 jsfiddle 链接供您引用。
代码:
HTML:
Name :<input type='text' id='txtName' />
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]+/,''))
}
});
链接:
最佳答案
这是您的解决方案:http://jsfiddle.net/9knXh/9/
新的 pregmatch 是 /[^a-zA-Z]+/g
最后的 g 表示除了 1 之外的所有操作
所以新代码:
$(this).val($(this).val().replace(/[^a-zA-Z]+/g,''))
编辑:我还为使用鼠标右键粘贴的人添加了更改
关于javascript - 如何替换(复制粘贴)文本框中的非字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21930082/