Kann jemand einen regulären Ausdruck bereitstellen, um gefundene illegale Zeichen zu suchen und zu ersetzen?

Beispiel: Entfernen von �

Ich bin mir nicht sicher, wie viele Arten von "illegalen" Charakteren existieren, aber ich denke, dies wird ein guter Anfang sein.

Danke vielmals

Bearbeiten - Ich habe keine Kontrolle über die Daten. Wir versuchen, einen Fang für die potenziell fehlerhaften Daten zu erstellen, die wir erhalten.

21
Chris 6 Okt. 2012 im 01:26

3 Antworten

Beste Antwort

Ungültige Zeichen werden beim Parsen in 0xFFFD konvertiert, sodass ungültige Zeichencodes ersetzt werden durch:

myString = myString.replace(/\uFFFD/g, '')

Sie können alle Arten ungültiger Zeichen erhalten, hier

26
saml 6 Okt. 2012 im 00:53

Anstelle einer schwarzen Liste können Sie auch eine Whitelist verwenden. z.B. Wenn Sie nur Buchstaben, Zahlen, Leerzeichen und einige Satzzeichen akzeptieren möchten, können Sie dies tun

myString.replace(/[^a-z0-9 ,.?!]/ig, '')
17
allyourcode 6 Okt. 2012 im 01:56

Versuchen Sie dies, es funktioniert für alle unerwarteten Charaktere wie ♫ ◘ etc ...

dataStr.replace(/[\u{0080}-\u{FFFF}]/gu,"");
2
Kapil Thakkar 14 Feb. 2018 im 13:27