【问题标题】:jQuery - find text in textareajQuery - 在 textarea 中查找文本
【发布时间】:2015-08-30 09:16:55
【问题描述】:

我想为 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

【问题讨论】:

    标签: javascript jquery html indexof


    【解决方案1】:
    $('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。在您的情况下,您正在检查零 - 这是错误的,因为零意味着它首先出现在字符串的开头。

    【讨论】:

      【解决方案2】:
        $('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/

      【讨论】:

        猜你喜欢
        • 2016-05-22
        • 2012-03-13
        • 2010-09-13
        • 2013-01-10
        • 1970-01-01
        • 1970-01-01
        • 2011-02-28
        • 1970-01-01
        相关资源
        最近更新 更多