2015-08-30 109 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/