2017-06-16 56 views
0

我有下面的代码: -的Javascript替换功能不工作

/*****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,'')); 
    }); 
}); 

我不希望在我输入任何空白box.Tried上面的代码,但不工作。我的代码有问题。请帮忙。

回答

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

您可以防止按下空白键。所以没有人可以输入它。

+0

这是错误的情况下用户复制粘贴文本。参考: - https://stackoverflow.com/questions/18608954/how-to-prevent-user-from-entering-special-characters-in-text-box-when-length-is – Sagar

+0

如果用户粘贴会发生什么输入代码? –

+0

@AndreiTodorut你是对的。那么这段代码将无法工作。 – Paramjeet

2

你的正则表达式是错误的。请检查该https://jsfiddle.net/w1uqqsc3/

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

使用这个应用程序的正则表达式http://regexr.com/

在那里,你可以找到有关正则表达式的引用。

0

为我工作

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