Javascript 防止用户在<;textarea>;

Javascript 防止用户在<;textarea>;,javascript,Javascript,我一直在看youtube上的developHP guy的教程。我想避免人们从我的表格中在我的文本区域中写脏话 但是我想阻止他们写几个单词,而不是一个,本教程没有解释这一点,我试图找到一种没有成功的方法,有人能解释我吗 这是实际的javascript HTML JAVASCRIPT <script type="text/javascript"> function clean(el){ var textfield = document.getElementById(e

我一直在看youtube上的developHP guy的教程。我想避免人们从我的表格中在我的文本区域中写脏话

但是我想阻止他们写几个单词,而不是一个,本教程没有解释这一点,我试图找到一种没有成功的方法,有人能解释我吗

这是实际的javascript

HTML


JAVASCRIPT

<script type="text/javascript">
        function clean(el){
var textfield = document.getElementById(el);
var regex = /fuck/gi;
if(textfield.value.search(regex) > -1) {
    textfield.value = textfield.value.replace(regex, "");
    }
}
</script>

功能清洁(el){
var textfield=document.getElementById(el);
var regex=/fuck/gi;
if(textfield.value.search(regex)>-1){
textfield.value=textfield.value.replace(regex,“”);
}
}

谢谢你们的时间,伙计们

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

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

对我来说,最简单的方法就是使用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);
  });
});

$(文档).ready(函数(){
$('#mytextArea').keyup(函数(){
var textBoxValue=$(this.val();
console.log(textBoxValue);
禁止变量=[
“操”,
“妈的”
];
对于(变量i=0;i-1){
textBoxValue=textBoxValue.replace(禁止[i],'');
}
}
$(this).val(textBoxValue);
});
});
在这里试试

显然,你仍然需要考虑像“fuck”这样的东西,而禁止数组不会处理这些东西,所以你的正则表达式方法可能是一个好主意,可以探索,但希望这能让你开始


此外,这可能已经在google it上完成了。

google“正则表达式”查看使用JQuery搜索和替换的帖子:别忘了在服务器端验证输入,javascript可以被禁用!在php中使用:
hi@stacker:
validated\u input=preg\u replace('/badword1 | badword2 | badwordn/gi',,$input')
hi@stacker,但我想在var regex中包含更多的单词,以便不仅删除/fuck/word,还删除其他单词:)我喜欢这一个的外观
<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);
  });
});