2014-11-04 20 views
8

Ho un modulo sulla mia pagina in cui l'utente può digitare del testo e inviarlo. Il testo viene quindi inviato al server (API REST sopra node.js) e salvato in DB (postgres).Come rimuovere i caratteri di controllo dalla stringa?

Il problema è che alcuni caratteri strani (caratteri di controllo) vengono salvati occasionalmente in DB, ad esempio carattere di controllo di escape (^ [) o carattere di controllo backspace (^ H). Generalmente non infrange nulla dato che quei caratteri sono invisibili, quindi html è reso correttamente. Tuttavia, quando fornisco il contenuto xml per i lettori RSS, questi (lettori) restituiscono "XML malformato" a causa di quei caratteri di controllo (funziona dopo averli eliminati).

La mia domanda è come posso rimuovere quei caratteri da una stringa a livello di client (javascript) o livello di server (javascript/node.js)?


ho trovato risposta proprio qui: removing control characters in utf-8 string

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

da ... solo facendo questo? Prendi la stringa, usa la funzione di sostituzione delle stringhe per sostituire qualsiasi carattere illegale (o intervallo di caratteri) con "", quindi salva quello. –

+0

Controlla questo argomento http://stackoverflow.com/questions/4374822/javascript-regexp-remove-all-special-characters – Asik

+0

usa CDATA per avvolgere tali dati –

risposta

1

ho avuto il problema simile, ecco la soluzione che ho scelto.

ho codificati i dati stringa dall'utente utilizzando encodeURIComponent (nome_variabile) e poi salvati poi durante la visualizzazione ho decifrato usando decodeURIComponent (nome_variabile)

+1

Questo non funziona perché 'encodeURI..' codifica solo i caratteri di controllo e 'decodeURI..' li riconduce indietro – user606521

+0

Grazie per il tuo commento e puoi spiegare, perché non dovrebbero funzionare la codifica e la decodifica? – Mateen

+0

Perché codifica solo caratteri invisibili, quindi DECODE di nuovo in modo che nulla cambi in realtà - avrò quei caratteri invisibili nel mio contenuto - e voglio rimuoverli dal contenuto ... – user606521

Problemi correlati