2015-08-30 3 views
0

Я хочу написать подтверждение для текстового поля, чтобы не вводить некоторые слова, например, если вы наберете Viber на textarea, он удалит это, а затем предупредит, моя проблема в том, что этот код работает только тогда, когда вы сначала набираете viber! если вы наберете для ex: мне нравится Viber, это не работает, я хочу найти viber везде в textarea и удалить его, а вторая проблема в том, что я хочу сделать это со всеми типами текста в строчных и прописных буквах, 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, если он Ждут» найти ружения. В вашем случае вы проверяете нуль - это неправильно, потому что нуль означает, что он находит первое появление в начале строки.

+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/

Смежные вопросы