2015-08-30 83 views
0

我想寫一個textarea的驗證以防止鍵入一些單詞,例如,如果您在textarea上鍵入Viber,它將刪除它然後警告,我的問題是此代碼僅適用於你先輸入viber吧!如果你鍵入ex:我喜歡Viber,它不起作用,我想在textarea的任何地方找到viber並將其刪除,第二個問題是我想用小寫和大寫的所有類型的文本,VIBER,viber ,Viber,ViBeR等...我可以這樣做嗎?jQuery - 在textarea中找到文本

$('textarea').keyup(function() { 
 
    var val = this.value; 
 
    var my = $(this).val(); 
 
    if (val.indexOf('viber') == 0) { 
 
$(this).val($(this).val().split(my).join("")); 
 
     alert("viber not allowed"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<textarea></textarea>

JSFiddle

回答

2
$('textarea').keyup(function() { 
    if ($(this).val().toLowerCase().indexOf('viber') != -1) { 
     $(this).val($(this).val().replace(/viber/i, '')); 
     alert('never say "Viber" again!'); 
    } 
}); 

而且注重String.indexOf - 它返回第一個匹配的索引或-1,如果它沒」找到一個ything。在你的情況下,你正在檢查零 - 這是錯誤的,因爲零意味着它在字符串的開頭找到第一個發生。

+0

這是很好,最好的答案!謝謝 – Pedram

1
$('textarea').keyup(function() { 
    var val = this.value.toLowerCase(); 
    var my = $(this).val(); 
    if (val.indexOf('viber') != -1) { 
$(this).val($(this).val().split(my).join("")); 
     alert("viber not allowed"); 
    } 
}); 

http://jsfiddle.net/0g5kxbbh/2/