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

标签 javascript jquery html

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

"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]+/,''))
    }
});

链接:

Demo Fiddle

最佳答案

这是您的解决方案: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/

相关文章:

javascript - 了解 AngularJS Controller 中的依赖注入(inject)

javascript - d3 添加多个具有功能的类

html - 在 CSS 中填充整个表格行

javascript - 将 lodash 注入(inject) Angular 提供程序

javascript - 当我刷新页面时 Jquery 重置

jquery - 检测何时滚动到面板内的 <ul> 最后一个 <li>

html - h :commandButton with css not the same in IE

javascript - 在表格行上 Accordion 切换但在特定单元格上阻止

javascript - jQuery slideDown() 无法正确处理 AJAX 结果

javascript - 在 cordova 应用程序上使用 AJAX 功能的最佳方法是什么?