阻止用户在<textarea>

时间:2017-12-23 22:47:58

标签: javascript

&lt; p&gt;我一直在观看来自youtube的developphp家伙的教程。我想避免人们在我的文本区域写下坏词。 &LT; / p为H. &lt; p&gt;但是我想阻止他们写几个单词,不仅仅是一个单词,本教程没有解释这个并且我试图找到没有成功的方法,有人可以解释一下吗?&lt; / p为H. &lt; p&gt;这是实际的javascript&lt; / p&gt; &LT; p为H. HTML&LT; / p为H. &lt; pre&gt;&lt; code&gt;&lt; textarea class =&#34; ta&#34; ID =&#34; TA&#34;名称=&#34; TA&#34;的onkeyup =&#34;清洁(&#39; TA&#39;)&#34;的onkeydown =&#34;清洁(&#39; TA&#39;)&#34;占位符=&#34;一个好词的好词&#34;&gt;&lt; / textarea&gt; &LT; /代码&GT;&LT; /预&GT; &LT; p为H. JAVASCRIPT&LT; / p为H. &lt; pre&gt;&lt; code&gt;&lt; script type =&#34; text / javascript&#34;&gt;         function clean(el){ var textfield = document.getElementById(el); var regex = / fuck / gi; if(textfield.value.search(regex)&gt; -1){     textfield.value = textfield.value.replace(regex,&#34;&#34;);     } } &LT; /脚本&GT; &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;感谢您的时间!&lt; / p&gt;

2 个答案:

答案 0 :(得分:6)

您可以使用多个|来构建正则表达式(管道)分隔词:

textfield.value = textfield.value.replace(/badword1|badword2|badwordn/gi , "" );

答案 1 :(得分:1)

最简单的方法(对我而言)可能是使用像jQuery这样的库来监视文本框上的按键。

<script
  src="https://code.jquery.com/jquery-3.2.1.min.js"
  integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
  crossorigin="anonymous"></script>

<textarea id="mytextArea" style="width:200px; height:300px"></textarea>

$(document).ready(function() {
  $('#mytextArea').keyup(function() {
    var textBoxValue = $(this).val();
    console.log(textBoxValue);

    var forbidden = [
      'fuck',
      'shit'
    ];

    for(var i = 0; i < forbidden.length; i++) {
      if(textBoxValue.search(forbidden[i]) > -1) {
        textBoxValue = textBoxValue.replace(forbidden[i], '');
      }
    }

    $(this).val(textBoxValue);
  });
});

在这里试试https://jsfiddle.net/t1p27hv4/

显然你仍然需要考虑禁止阵列无法处理的'f uck'之类的东西,所以你的正则表达式方法可能是一个好主意,但希望这会让你开始。

此外,这可能已经完成了谷歌吧。