【问题标题】:How to replace (copy paste) non alpha characters in the textbox如何替换(复制粘贴)文本框中的非字母字符
【发布时间】:2014-02-21 09:19:57
【问题描述】:

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

“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

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    这是您的解决方案:http://jsfiddle.net/9knXh/9/ 新的预赛是 /[^a-zA-Z]+/g 最后的 g 意味着除了 1 之外都做 所以新代码:

    $(this).val($(this).val().replace(/[^a-zA-Z]+/g,''))
    

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

    【讨论】:

    • 我顺便编辑了代码。因为使用鼠标右键粘贴的人需要进行更改
    【解决方案2】:

    最后使用 g 来解决您的问题

    http://jsfiddle.net/9knXh/7/

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

    【讨论】:

      【解决方案3】:

      使用此代码:

      $("#txtName").on('keydown', (function() {
          var keyCode = (event.keyCode) ? event.keyCode : event.which;
          var isCtrl;
          isCtrl = event.ctrlKey
          if (isCtrl) {
              if ('v' == String.fromCharCode(keyCode).toLowerCase()) {
                   `enter code here`
              }
          }
          return true;
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-14
        • 1970-01-01
        相关资源
        最近更新 更多