2014-11-04 9 views
8

Ich habe Formular auf meiner Seite, wo Benutzer einen Text eingeben und senden können. Der Text wird dann an den Server (REST-API über node.js) gesendet und in der Datenbank (postgres) gespeichert.Wie können Sie Steuerzeichen aus einer Zeichenfolge entfernen?

Das Problem ist, dass einige seltsame Zeichen (Steuerzeichen) gelegentlich in DB gespeichert werden - zum Beispiel Escape-Steuerzeichen (^ [) oder Backspace-Steuerzeichen (^ H). Im Allgemeinen wird nichts unterbrochen, da diese Zeichen unsichtbar sind, so dass HTML korrekt gerendert wird. Wenn ich jedoch XML-Inhalt für RSS-Reader zur Verfügung stelle, geben sie (Lesegeräte) aufgrund dieser Steuerzeichen "Malformed XML" zurück (funktioniert nach dem Löschen).

Meine Frage ist, wie kann ich diese Zeichen aus einer Zeichenfolge auf Client-Ebene (Javascript) oder Server-Ebene (javascript/node.js) entfernen? removing control characters in utf-8 string

s.replace(/[\x00-\x1F\x7F-\x9F]/g, ""); 
+1

durch ... nur das zu tun? Nimm den String, benutze die string replace Funktion, um ein ungültiges Zeichen (oder einen Zeichenbereich) durch '' zu ersetzen, und speichere das stattdessen. –

+0

Überprüfen Sie dieses Thema http://stackoverflow.com/questions/4374822/javascript-regexp-remove-all-special-characters – Asik

+0

Verwenden Sie CDATA, um solche Daten zu umhüllen –

Antwort

1

Ich hatte das ähnliche Problem, hier ist die Lösung, die ich wähle:


Ich habe hier beantworten gefunden.

codierte ich die String-Daten aus dem Benutzer unter Verwendung encodeURIComponent (variable_name) und dann dann gespeichert, während ich decodeURIComponent (variable_name) unter Verwendung dekodiert Anzeige

+1

Dies funktioniert nicht, weil 'encodeURI..' nur die Steuerzeichen und codiert 'decodeURI..' entschlüsselt sie zurück – user606521

+0

Danke für deinen Kommentar und kannst du bitte erklären, warum würde das Enkodieren und Dekodieren nicht funktionieren? – Mateen

+0

Weil es nur unsichtbare Zeichen ENCODIERT und dann DECODIERT sie wieder, so tatsächlich ändert sich nichts tatsächlich - ich werde diese unsichtbaren Zeichen in meinem Inhalt haben - und ich möchte sie vom Inhalt ENTFERNEN ... – user606521

Verwandte Themen