Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2008 Teil von Januar

SELFHTML Forumsarchiv
Regulärer Ausdruck mit   funktioniert nicht im Safari

Informationsseite
  1. Seite (JAVASCRIPT) Regulärer Ausdruck mit   funktioniert nicht im Safari von JürgenB, 30. 01. 2008, 21:32
nach unten

Regulärer Ausdruck mit   funktioniert nicht im Safari

Die folgende Nachricht zum Thema stammt von: JürgenB, 30. 01. 2008, 21:32

Hallo,

mit folgenden Befehl

  n = n.replace(/\s| | /g,"");

entferne ich in einem String alle Leerzeichen, auch geschützte. Im IE, im Opera und im Firefox funktioniert das auch, aber der Safari ersetzt nur die " ", nicht aber   und  . Getestet wurde unter Windows. Ich habe auch versucht, die drei Zeichen nacheinander zu ersetzen, was auch nicht funktionierte.

Stellt der Safari geschützte Leerzeichen anders dar oder kann er nicht nach Entities suchen?

Zu Regulären Ausdrücken habe ich noch eine weitere Frage: Mit "\s" finde ich ja alle "white spaces". Gibt es auch eine Möglichkeit, nach allen "spaces" zu suchen, also auch schmale, breite, geschützte, ..., ohne alle im Regulären Ausdruck aufzuführen?


Gruß, Jürgen

nach obennach unten

Regulärer Ausdruck mit   funktioniert nicht im Safari

Die folgende Nachricht zum Thema stammt von: molily, 30. 01. 2008, 21:37

Hallo,

»» mit folgenden Befehl
»»
»»   n = n.replace(/\s| | /g,"");
»»
»» entferne ich in einem String alle Leerzeichen, auch geschützte. Im IE, im Opera und im Firefox funktioniert das auch, aber der Safari ersetzt nur die " ", nicht aber   und  .

Du nutzt hier eine HTML-Zeichenkodierung innerhalb eines JavaScripts. Das geht davon aus, dass der HTML-Parser auch den JavaScript-Code parst und Zeichenreferenzen darin auflöst.

Das ist zwar üblich, aber möglicherweise macht es Safari nicht. Also versuche mal, mit JavaScript das Zeichen einzubinden: \u00A0

»» Stellt der Safari geschützte Leerzeichen anders dar oder kann er nicht nach Entities suchen?

»Nach Entities suchen« tut kein Browser bei dieser Ersetzung!

Das sind Ebenen, die nie miteinander in Kontakt kommen.

»» Gibt es auch eine Möglichkeit, nach allen "spaces" zu suchen, also auch schmale, breite, geschützte, ..., ohne alle im Regulären Ausdruck aufzuführen?

Nein. Du musst sie auflisten. Am besten in der genannten Schreibweise als hexadezimale Unicode escape sequence.

Mathias
--
SELFHTML aktuell Weblog

nach obennach unten

Regulärer Ausdruck mit   funktioniert nicht im Safari

Die folgende Nachricht zum Thema stammt von: JürgenB, 30. 01. 2008, 21:55

Hallo molily,

»» Das ist zwar üblich, aber möglicherweise macht es Safari nicht. Also versuche mal, mit JavaScript das Zeichen einzubinden: \u00A0

wenn ich nur nach \u00A0 suche, funktioniert es zwar im Safari, aber nicht im FF. Ich lese den String per innerHTML aus einem HTML-Element ein, vieleicht liegt es daran. Beim Alert sind im FF die   zu sehen. Der Safari zeigt hier Leerzeichen.

Ich suche jetzt einfach nach allen, dann geht es:

  n = n.replace(/\s| | |\u00A0/g,"");


Danke für deine Hilfe.


Gruß, Jürgen

nach obennach unten

Regulärer Ausdruck mit   funktioniert nicht im Safari

Die folgende Nachricht zum Thema stammt von: molily, 30. 01. 2008, 22:04

Hallo,

»» Ich lese den String per innerHTML aus einem HTML-Element ein, vieleicht liegt es daran. Beim Alert sind im FF die   zu sehen. Der Safari zeigt hier Leerzeichen.

Achso. Da hat natürlich jeder Browser seine eigenen Serialisierungsfunktionen, weil innerHTML nur unzureichend spezifiziert ist.

»» Ich suche jetzt einfach nach allen, dann geht es:
»»
»»   n = n.replace(/\s| | |\u00A0/g,"");
»»


Naja, solange du dir sicher sein kannst, dass ein Element nicht wirklich den Text » « (nach der Auflösung von Entity- und Zeichenreferenzen) beinhaltet.

Mathias
--
SELFHTML aktuell Weblog

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2008 Teil von Januar

© 1998-2006 Seite Impressum, Software: Classic Forum