2017-12-23 1 views
4

Ich habe ein Tutorial von developphp Kerl von Youtube beobachtet. Ich möchte vermeiden, dass Leute schlechte Wörter in meinem Textbereich aus meinem Formular schreiben.Verhindern Benutzer bestimmte Wörter zu schreiben <textarea>

Aber ich möchte verhindern, dass sie mehrere Wörter schreiben, nicht nur eine, dieses Tutorial erklärt das nicht und ich versuche einen Weg zu finden, ohne Erfolg, kann mir jemand erklären?

dies ist die eigentliche Javascript

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> 

Vielen Dank für Ihre Zeit Jungs!

+0

google "reguläre Ausdrücke" –

+0

Sehen Sie diesen Beitrag, der JQuery verwendet, suchen und ersetzen: https://stackoverflow.com/questions/4541070/how-can-i-do-a-jquery-wear-word-bad-word -filter – EddingtonsMonkey

+1

Vergessen Sie nicht, die Eingabe auf der Serverseite zu validieren, Javascript kann deaktiviert werden! Tut es in php: $ valided_input = preg_replace ('/ badword1 | badword2 | badwordn/gi,' ', $ input') ' – Dwadelfri

Antwort

6

Sie können Ihre Regex mit mehreren | erstellen (Rohr) getrennt Worte:

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

hi @ stacker aber ich möchte mehr Wörter in die var regex zu entfernen nicht nur/fuck/Wort aber auch andere? :) – Eugenio

+0

ich mag das Aussehen dieses einen – ozzy432836

1

Nun, der einfachste Weg, dies zu tun (für mich) ist wahrscheinlich eine Bibliothek wie jQuery verwenden für Tastendruck auf das Textfeld zu beobachten.

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

Probieren Sie es hier https://jsfiddle.net/t1p27hv4/

Offensichtlich haben Sie immer noch über die Dinge zu denken, wie ‚f uck‘, die das verbotene Array so Ansatz Ihre regex nicht behandeln würde könnte eine gute Idee sein, das wird zu erkunden, aber hoffentlich fang an.

Auch das ist wahrscheinlich schon getan worden, also googeln Sie es.

Verwandte Themen