Aus irgendeinem Grund verhalten sich diese beiden Regex genauso:
"43\\gf..--.65".replace(/[^\d.-]/g, ""); // 43..--.65
"43\\gf..--.65".replace(/[^\d\.-]/g, ""); // 43..--.65
Im ersten regulären Ausdruck entkomme ich dem Punkt ( .
) nicht, während ich im zweiten regulären Ausdruck ( \.
) entkomme .
Was sind die Unterschiede und warum verhalten sie sich gleich?
javascript
regex
replace
Gdoron unterstützt Monica
quelle
quelle
-
) muss nur maskiert werden, wenn es in der Mitte des Bereichs liegt?Der Punktoperator
.
muss nicht innerhalb einer Zeichenklasse maskiert werden[]
.quelle
Wenn Sie Ihren Regex mit JavaScript testen, versuchen Sie es
\\.
stattdessen mit\.
.Es verhält sich genauso, weil JS den ersten Backslash entfernt.
quelle
Auf dieser Webseite sehe ich Folgendes:
"Denken Sie daran, dass der Punkt kein Metazeichen innerhalb einer Zeichenklasse ist, sodass wir ihn nicht mit einem Backslash umgehen müssen."
Ich denke also, das Entkommen ist unnötig ...
quelle