Javascript Regex für Leerzeichen oder & nbsp;

7

Ich bin auf der Suche nach einem Javascript Regex für Whitespace. Ich überprüfe mehrere verschiedene Strings in einer Schleife und ich muss die Strings finden, die den großen Leerraum enthalten.

Die Leerraum-Zeichenfolge ist in einer Schleife wie dieser ...

aufgebaut

Bitte lesen Sie diesen Code als var whitespace = " " , dann führt die Schleife nur mehr nicht brechende Leerzeichen ein.

%Vor%

dann wird es später in einer Zeichenkette verwendet.

%Vor%

Ich muss die Strings identifizieren, die Leerzeichen enthalten (20 Leerzeichen).

Oder sollte ich nur eine contains(whitespace) oder etwas Ähnliches machen.

Jede Hilfe ist willkommen.

Prost, ~ ck in San Diego

    
Hcabnettek 22.07.2009, 22:29
quelle

4 Antworten

1

Wenn Sie Leerzeichen als 20 Leerzeichen definiert haben, können Sie

verwenden %Vor%

Es ist nicht notwendig, regex zu verwenden, wenn Sie darauf verzichten können.

    
SolutionYogi 22.07.2009, 22:31
quelle
32

Für diese spezielle Frage ist Yogi richtig - du brauchst keine Regex und du bist wahrscheinlich besser dran ohne es.

Für zukünftige Referenz, wenn jemand anderes kommt, hat Regex ein spezielles Zeichen für Leerzeichen:

%Vor%

In JS-Sprache (wo Regex-Literale in Schrägstrichen enthalten sein können), wenn Sie nach 20 Leerzeichen (keine Tabs, Zeilenvorschübe usw.) suchen, können Sie dies tun:

%Vor%

Sie sollten auch beachten, dass viele Browser-Regex-Engines die Non-Breaking SPace nicht als Leerzeichen betrachten. Die Unicode-Darstellung für das NBSP-Zeichen lautet:

%Vor%

Kombiniert, sucht nach einer beliebigen Kombination von 20 Leerzeichen (einschließlich Tabulatoren usw.) ODER NBSPs in einer Reihe (die eckigen Klammern bezeichnen eine 'Zeichenklasse'):

%Vor%

BEARBEITEN : Thomas Punkt zu NBSP einbeziehen. Geben Sie einen Kommentar ab und / oder antworten Sie auf eine höhere Stimme, wenn Sie - ich weiß, dass ich habe.

    
steamer25 22.07.2009 22:56
quelle
7

Mindestens IE und Chrome enthalten in \ s NICHT char 160 (nbsp). Eine Regex, die es enthält, ist

%Vor%

Siehe auch Ссылка wer berichtet über IE, aber mittlerweile hat sich chrome anscheinend auch geändert, um es nicht mehr aufzunehmen.

    
citykid 28.02.2013 10:50
quelle
0

Für IE (ich habe IE7 getestet) stimmt \s nicht mit   überein, Chrome und Firefox jedoch. Wenn Sie also Leerzeichen, aber nicht   (kein Leerzeichen) entfernen möchten, verwenden Sie \s nicht, da es nicht Browser-sicher ist.

Wenn Sie beispielsweise alle Leerstellen einschließlich \ n \ t, aber nicht   entfernen möchten, können Sie \n \t und Leerraum verwenden, also: str.replace(/[\t \n]+/g, "")

    
wcb1 05.08.2012 19:18
quelle

Tags und Links