/ / Wie entferne ich ein Unicode-Zeichen aus einem String in Javascript? - Javascript, Unicode

Wie kann man ein Unicode-Zeichen aus einer Zeichenkette in Javascript streichen (oder regex match)? - Javascript, Unicode

Eine Website, die ich mit einem Userscript modifiziere, hat einigeText, den ich ändern möchte. Der Text scheint ein Unicode-Zeichen zu haben. Wenn ich es auf dem Bildschirm anschaue oder sogar mit jQuery in eine Variable extrahiere, dann sieht aus so was:

2 others

Wenn ich jedoch meine eigene Variable mit demselben Text erstelle und dann einen Vergleich mache, werden sie als falsch angezeigt. Also habe ich den Text der Site in vim kopiert / eingefügt und es sieht so aus:

2<200e> others

Am besten kann ich feststellen, dass es sich hierbei um ein Unicode-Zeichen für das Leerzeichen (?) Handelt. Ich möchte in der Lage sein, diese Zeichenfolge mit einer Regex abzustimmen, wie zum Beispiel:

^(d+(?:,d+)*)s+(.*)

An dieser Zeichenfolge mit dem eingebetteten Unicode-Zeichen schlägt sie fehl. (es funktioniert gut auf meinem eigenen getippten Text von "2 anderen").

Gibt es eine Möglichkeit, diesen Unicode aus dem Text zu entfernen? Ich habe folgendes versucht, ohne Erfolg:

text.replace("u200e","")

text.replace("200e","")

text.replace("%20","")

text.replace("%u200e","")

Oder kann ich alternativ meinen Regex so anpassen, dass er entweder mit "2 anderen" oder demselben Text mit dem eingebetteten 200e-Unicode-Zeichen übereinstimmt?

Antworten:

4 für die Antwort № 1

Versuchen Sie stattdessen einen tatsächlichen Regex zu verwenden.

text = text.replace(/u200e/g, "");

Kann ich meinen Regex so anpassen, dass er entweder mit "2 anderen" oder mit demselben Text mit dem eingebetteten 200e-Unicode-Zeichen übereinstimmt?

Sie könnten einfach das ändern s in Ihrem Regex auch U + 200E, z.

^(d+(?:,d+)*)[su200e]+(.*)