Hallo!
mit folgendem Ausdruck
var tval = val.replace(/\s| | |\u00A0| |\u202f| | |\u2009|´|'|\./g,"");
entferne ich alle mir bekannten Tausendertrennzeichen aus einer Zahl. Jetzt habe ich mal einen Blick in die Doku geworfen und gelesen, das
\s
schon alle Arten von Worttrennzeichen erfasst.
Das ist richtig. Siehe MDN.
Daher sollte
var tval = val.replace(/\s|´|'|\./g,"");
reichen.
Ja. Allerdings macht es etwas anders als dein Code oben. Der Code oben geht davon aus, daß "val" ein String mit HTML ist, das Zeichenreferenzen enthalten kann. Du entfernst teilweise die Zeichenreferenzen, teilweise die Unicode-Zeichen direkt.
Wenn du nur \s verwenden willst, dann müsstest du dafür sorgen, dass vorher alle Zeichenreferenzen zu Zeichen umgewandelt werden. D.h. du operierst dann auf Plain Text und nicht mehr auf HTML. Das wäre der einfachste Weg.
Wenn auf HTML-Code operieren musst und Zeichenreferenzen auch berücksichtigen willst, müsstest du streng genommen alle Varianten unterstützen: benannt, numerisch dezimal, numerisch hexadezimal. Außerdem lässt sich ein Zeichen numerisch unterschiedlich ausdrücken. Beispielsweise ist   gleichwertig mit  . Da kommst du in Gefilde, die sich mit Regulären Ausdrücken schwer abdecken lassen. Diese Erkennung sollte ein HTML-Parser übernehmen.
Peter