2017-12-23 12 views
4

私はyoutubeからdevelopphp guyからチュートリアルを見てきました。私は自分のフォームからテキストエリアに悪い言葉を書くのを避けたい。特定の単語を書くのを防ぐ<textarea>

しかし、私はいくつかの言葉を書かないようにしたいのですが、このチュートリアルではそのことを説明していません。私は突き進みのない方法を見つけようとしています。

これはあなたの時間の人たちのための

HTML

<textarea class="ta" id="ta" name="ta" onkeyup="clean('ta')" onkeydown="clean('ta')" placeholder="A good word for a good word"></textarea> 

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> 

おかげで、実際のjavascriptのです!

+0

google "正規表現" –

+0

JQueryの検索と置換を使用するこの記事を参照してください。https://stackoverflow.com/questions/4541070/how-can-i-do-a-jquery-swear-word-bad-word -filter – EddingtonsMonkey

+1

サーバー側の入力を検証することを忘れないでください、javascriptを無効にすることができます!それはPHPでそれを行う: '$ validated_input = preg_replace( '/ badword1 | badword2 | badwordn/gi、' '、$ input')' – Dwadelfri

答えて

6

正規表現を複数の|おそらく、テキストボックスのキーを押してを監視するためのjQueryのようなライブラリを使用することです(私にとっては)これを行うには

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

こんにちは@stackerしかし、私はvar regexに/ fuck /言葉だけでなく他のものも?:) – Eugenio

+0

私はこの1つの外観が好きです – ozzy432836

1

まあ一番簡単な方法:(パイプ)は、単語を分離しました。

<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); 
    }); 
}); 

明らかにあなたはまだ禁止さ配列は、ので、あなたの正規表現のアプローチを探求することをお勧めすることができ扱えないだろう「のF UCK」うまくいけば、この意志のようなものについて考える必要がここにhttps://jsfiddle.net/t1p27hv4/

を試してみようあなたを始めましょう。

また、これはおそらく既にGoogleで既に行われています。

関連する問題