val.replace (/ [^a-zA-Z_-0-9] / g, '') erzeugt SyntaxError: ungültiger Bereich in der Zeichenklasse

7

Ich muss alle Zeichen ersetzen, die nicht mit dem Bereich a-zA-Z_-0-9 übereinstimmen. Also mache ich val.replace(/[^a-zA-Z_-0-9]/g, '') , bekomme aber Fehler. Wie kann ich das beißen? Danke

    
Oleksandr Khavdiy 27.08.2012, 13:22
quelle

8 Antworten

9

Wenn Sie das Minuszeichen "-" in die Zeichenklasse einbeziehen wollen, müssen Sie es an das Ende des Bereichs setzen:

%Vor%     
Dmitry 27.08.2012, 13:25
quelle
5

Ich würde diese Regex bevorzugen:

%Vor%     
sQVe 27.08.2012 13:25
quelle
4

Das Zeichen - wird als Literalzeichen behandelt, wenn es das letzte oder das erste Zeichen (nach dem Zeichen ^ ) ist innerhalb der Klammern.

    
Simon Richter 27.08.2012 13:27
quelle
3

Sie erwarten, dass - character als literal analysiert wird, aber tatsächlich als Bereich analysiert wird: _-0 bedeutet _ bis 0 , genauso wie a-z bedeutet a auf% Code%. Da z jedoch einen höheren Zeichencode als _ hat, erhalten Sie einen Fehler.

In deinem Fall entkomme einfach: 0 . Dies wird als das \- -Zeichen analysiert.

    
pimvdb 27.08.2012 13:24
quelle
2

Sie haben einen schlechten Bereich, entfernen Sie den - zwischen _ und den Zahlenbereich und setzen Sie ihn am Ende oder am Anfang.

    
Birei 27.08.2012 13:24
quelle
2

versuche das:

%Vor%     
Dariush Jafari 27.08.2012 13:25
quelle
2

Sie müssen dem "-"

entkommen %Vor%     
Nicholas Albion 27.08.2012 13:27
quelle
0
%Vor%     
edgar berumen 26.08.2016 00:43
quelle

Tags und Links