jQuery - 在文本区域中查找文本

jQuery - find text in textarea

我想为 textarea 编写验证以防止键入一些单词,例如,如果您在 textarea 上键入 Viber,它将删除它然后提醒,我的问题是此代码仅在您首先键入 viber 时有效!如果您键入 ex:我喜欢 Viber,它不起作用,我想在 textarea 中到处找到 viber 并将其删除,第二个问题是我想对所有类型的小写和大写文本、VIBER、viber 执行此操作、Viber、ViBeR 等...我可以这样做吗?

$('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

  $('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/

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

并注意 String.indexOf - 它是第一个匹配项的 returns 索引,如果没有找到任何内容,则为 -1。在您的情况下,您正在检查零 - 这是错误的,因为零意味着它在字符串的开头找到第一次出现。