2016-06-07 15 views
0

Ich versuche, alle "Unicode-Symbole" aus einer Zeichenfolge zu entfernen. Das heißt, alle mehrsprachigen Zeichen zu behalten aber dingbats, Pfeile und alle diese Sachen zu entfernen.JavaScript entspricht C# Char.IsSymbol

C# hat eine sehr praktische Funktion namens Char.IsSymbol, die auf alle Zeichen eines Strings ausgeführt werden kann, wobei das Zeichen entfernt wird, wenn die Funktion true zurückgibt.

Ich habe etwas ähnliches in JavaScript gesucht. Wenn es eine Regex ist, wie kann ich dann eine Liste aller Unicode-Bereiche der Symbolzeichen zusammenstellen? Ich schaute auf XRegExp, konnte aber nichts finden, das nur Symbole filtert.

+0

Nach @ Luaans Ratschlag, habe ich XRegExp verwendet, aber da ich nicht die ganze Bibliothek in mein Hauptprojekt einbeziehen wollte, 'extrahierte' ich das 'native' JS Regex-Objekt mit dem 'toString() 'des XRegExp-Objekts. –

Antwort

1

XRegExp hat Unterstützung für das, was Sie suchen - http://xregexp.com/plugins/#unicode

Sie würden vermutlich entweder für \pL oder \pS entsprechen. Sie finden eine schöne Liste der typischen Unicode-Kategorien in http://www.regular-expressions.info/unicode.html#category

Insgesamt ist Unicode ziemlich schwierig. Es gibt viele Möglichkeiten, Ihnen Ärger zu bereiten, insbesondere mit Software, die nicht vollständig Unicode-kompatibel ist (leider enthält dies JavaScript - siehe https://mathiasbynens.be/notes/javascript-unicode für ein schönes Beispiel). Dies wird noch durch die Tatsache verstärkt, dass JS oft mit Doppelcodierung (HTML + JS, und es gibt auch schlimmere Fälle) läuft. Jemand wird wahrscheinlich einen Weg finden, Ihre Schecks zu umgehen, aber ich fürchte, es gibt keinen einfachen Weg, das zu verhindern. Nur auf der Suche sein :)

+0

Sollte gründlich über XRegExp gelesen haben. –