Javascript替换功能不起作用

时间:2017-06-16 10:37:56

标签: javascript jquery

我有以下代码: -

/*****html*********/
<input type="text" id="firstname">

/******jquery********/
$(document).ready(function(){
   $("#firstname").keyup(function(){
      var text=$(this).val();
      $(this).val(text.replace(/[^\s((a-zA-Z))]/g,''));
   });
});

我不想在输入框中输入任何空格。上面的代码但是没有工作。我的代码有问题。请帮忙。

4 个答案:

答案 0 :(得分:2)

$('#firstname').keypress(function( e ) {
    if(e.which === 32) 
        return false;
})​​​​​;​

如果有空格,可以防止按键。所以没有人可以输入它。

答案 1 :(得分:2)

你的正则表达式错了。请查看此https://jsfiddle.net/w1uqqsc3/

$(this).val(text.replace(/[\s((0-9))]/g,''));

将此应用用于正则表达式http://regexr.com/

在那里你可以找到有关正则表达式的参考资料。

答案 2 :(得分:0)

为我工作

$("#firstname").keyup(function(){
  var text=$(this).val();
  $(this).val(text.replace(/[^(a-zA-Z)]/g,''));
});

答案 3 :(得分:0)

如果您在keyup事件期间尝试进行替换,则在尝试编辑文本时可能会遇到光标跳转问题。

我更愿意允许他们输入他们想要的内容并在更改事件期间清理文本,如下所示(这也适用于复制粘贴方案):

$(document).ready(function(){
   $("#firstname").change(function(){
      var text=$(this).val();
      $(this).val(text.replace(/\s/g,''));
   });
});

JS小提琴:https://jsfiddle.net/pnaveen/w1uqqsc3/2/