【问题标题】:How to use bad words filter in summernote textarea如何在summernote textarea中使用坏词过滤器
【发布时间】:2021-06-14 01:59:57
【问题描述】:

我想过滤坏词,但我无法让这段代码正常工作。它适用于除此之外的所有其他文本区域。 经过大量搜索,我发现这可能是因为这个 textarea 是带有 Summernote 的。
任何想法我应该做什么?
提前致谢!

<div class="form-group">
    <textarea rows="7" name="proposal_desc" placeholder="Въведете описание на предложението си" class="form-control proposal-desc"><?= $d_proposal_desc; ?></textarea>
</div>
<script>
$( document ).ready(function() {
    var triggerWords = ['badword1', 'badword2'];
    $(document).on('keyup', 'textarea', function() {
        for (var i = 0; i < triggerWords.length; i++) {
            if ($(this).val().toLowerCase().indexOf(triggerWords[i]) != -1) {
                alert("Alert! You've typed a blocked word.");
            }
        }
    });
});
</script>

【问题讨论】:

  • 仅供参考:当你有一个坏词“ham”并且这个人输入“hamster”时,这种类型的检查会失败
  • 我假设summernote有一个带有事件处理程序的api。

标签: javascript textarea summernote


【解决方案1】:

您可以通过混合纯 JS 来简化我们的代码。

const text = "I type badword1 word and will block."

const isBadWord = text.replace(/[\W_]+/g," ").split(' ').includes('badword1')
isBadWord ? alert('Bad word detected!') : null;

【讨论】:

    【解决方案2】:

    你可以试试:

    var regex = new RegExp('\\b(' + badwords.join('|') + ')\\b', 'i' );
    

    【讨论】:

      猜你喜欢
      • 2022-10-24
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      相关资源
      最近更新 更多