Reguläre Ausdrücke und HTML Unicode-Darstellung
Marc T.
- javascript
0 Fabian0 Marc T.0 Gunnar Bittersmann0 Fabian
0 ChrisB
Hallo!
Ich habe einige Strings der aus normalen Buchstaben, aber auch aus Unicode-Characters in der HTML Notation besten kann (z.B. 动).
Gibt es eine Möglichkeit mit Hilfe von regulären Audrücken in Javascript herauszufinden ob dieser HTML-Unicode einen bestimmten Bereich liegt?
Zum Beispiel zwischen 一 und 鿃, was alle Chinesischen Zeichen sind.
Vielen Dank schon einmal im voraus!
Hallo,
Warum möchtest Du das mit regulären Audrücken machen? Mit Sicherheit geht es, das größte Problem dürfte sein, dass die Stellen ja unterschiedliche Zeichen beinhalten dürfen, je nach vorrangegangen. So darf die letzte Stelle beispielsweise ein F sein, aber nur, wenn die vorherigen nicht 9FC sind.
Mein Vorschlag wäre es eher, Zahl zu parsen: Du schneidest mit String.substr oder slice die Zahl raus und parst sie dann mit ParseInt. Diese Zahl kannst Du dann ja ganz einfach vergleichen:
var strVal = String("一").substr(3, 4);
var num = parseInt(strVal, 16);
Ob es ein benanntes Entity ist oder so eine Darstellung, kannst Du nun wieder relativ einfach prüfen.
Danke für den Tip!
Das wäre bestimmt auch eine Möglichkeit.
Der Grund warum ich an reguläre Ausdrücke gedacht habe, ist aus wegen der Performance-Geschwindingkeit. Das Ganze soll nämlich auf sehr langsamen Maschinen laufen (Einen Prozessor mit 200MHz bzw 800MHz). Und da es ein paar mehr Strings sind, könnte parseInt die Sache etwas verlangsamen.
Aber ich schau mal wie das klappt :)
Besten Dank nochmal!
@@Fabian:
Mit Sicherheit geht es, das größte Problem dürfte sein, dass die Stellen ja unterschiedliche Zeichen beinhalten dürfen, je nach vorrangegangen. So darf die letzte Stelle beispielsweise ein F sein, aber nur, wenn die vorherigen nicht 9FC sind.
Nein, Denkfehlter. Der reguläre Ausdruck beackert nicht den String wie er im HTML-Quelltext steht, sondern den mit den aufgelösten Zeichenreferenzen, s.a. https://forum.selfhtml.org/?t=174265&m=1144848
Live long and prosper,
Gunnar
Stimmt, da hatte ich wirklich einen dicken Denkfehler. Danke für die Korrektur.
Hi,
Mein Vorschlag wäre es eher, Zahl zu parsen: Du schneidest mit String.substr oder slice die Zahl raus und parst sie dann mit ParseInt.
Auch umstaendlich. String.charCodeAt() "liefert die Nummer eines Zeichens in der Unicode-Codetabelle zurück, das in einer Zeichenkette an einer bestimmten Position steht."
MfG ChrisB