2016-05-06 2 views
0

Ich möchte "'[]\ von beschränken unter Eingabe in HTML <textarea> Mein Code ist hier:.Ich möchte von beschränken " '[] input in html Textbereich unter

<textarea rows="5" id="comment" maxlength='500' 
 
    onkeyup="this.value = this.value.replace(/[$&*%^#!~`(){}:;<>?|,=+-]/g, '')" 
 
    placeholder="Enter your query."> 
 
</textarea>

+0

'id =" comment "' ... schreiben Sie ein Kommentar-System, das keine Interpunktion erlaubt ?! (Im Allgemeinen ist es besser, wenn Sie richtig flüchten, anstatt zu versuchen, die Zeichen zu begrenzen, die Ihnen die Leute schicken). – Quentin

Antwort

0

Wie in Sie möchten sie auch ersetzen?

In diesem Fall fügen Sie sie einfach in den Zeichensatz ein.Sie müssen nur mit \ zuerst entkommen:

/[$&*%\^#!~`(){}:;<>?|,=+\-\"\'\[\]\\]/g 

Ich habe \ für einige andere auch, wie ^ und -, da sie innerhalb der eckigen Klammern auf besondere Bedeutung nehmen.


Edit: Es scheint Probleme mit den verschiedenen Parser beim Lesen der Regex direkt aus HTML zu sein. Gleiches gilt auch in JavaScript mit der Regex in Literalform. Aber ich habe eine Lösung gefunden. Während Stapel Snippets und beide jsfiddle beschweren, wenn ich den folgenden Code, die folgenden Arbeiten mit Codepen:

Hier ist der Code:

HTML:

<textarea rows="5" id="comment" maxlength='500' placeholder="Enter your query."></textarea> 

JS:

document.querySelector('textarea').addEventListener('keyup', function(e) { 
    var re = new RegExp(/[\[\]\\\'\"]/, 'g'); 
    this.value = this.value.replace(re, ''); 
}); 
+0

Ich möchte nur "", "", \ und [] einschränken. Andere Sonderzeichen wurden erfolgreich verhindert. –

+0

@mohanachoudhuri aktualisiert meine Lösung. Ich musste etwas Code auf JavaScript umstellen, aber es sollte Ihnen geben, was Sie wollen. – timolawl

0

Sie muss jedes Zeichen verlassen, das in RegEx verwendet wird. Hier [] wird der Ausdruck angegeben. Sie haben etwas, was wie dieses

<textarea rows="5" id="comment" maxlength='500' 
 
       onkeyup="this.value = this.value.replace(/[\[\]]/g, '')" 
 
        placeholder="Enter your query." ></textarea>

+0

Danke, es verhindert die [] geschweiften Klammern. Sollte ich solche Anführungszeichen schreiben ["], um das zu verhindern? –

+0

Nicht sicher Wenn ich Ihre Frage verstehe. Sie können innerhalb der eckigen Klammer beliebig viele Zeichen hinzufügen. Aber wenn das Zeichen in RegEx verwendet wird, müssen Sie es einfach umgehen mit Backslash (\) –

0

<script> 
 

 

 
function myFunction(event) { 
 

 
    var x = event.which || event.keyCode; 
 
// " ' [] \ 
 
    
 
if(x=="16" || x=="222" || x=="219" || x=="221" || x=="220") 
 
{ 
 

 
    document.getElementById("comment").value=""; 
 
    
 
} 
 
} 
 
</script> 
 

 
<textarea id="comment" onkeyup="myFunction(event)" ></textarea>
Sie diese verwenden können, verwenden.

Verwandte Themen