正则表达式不验证字符串结尾
Regex not validating end of string
考虑以下场景(Javascript 代码):
regex = new RegExp((/([\d,.]+)[ $]/));
value = "2.879"
正则表达式不匹配值,但它匹配 (value+" ") 因此我认为 $ 不匹配?这是为什么?
$ 不应该验证字符串的结尾吗?
$
等特殊字符在字符 class 中的含义不同。在字符 class 中,它们只是字符,因此 [ $]
将匹配 space 字符或 $
字符。它不会匹配字符串的结尾。
如果你想匹配 space 个字符或字符串的结尾,你应该使用交替,即 ( |$)
.
考虑以下场景(Javascript 代码):
regex = new RegExp((/([\d,.]+)[ $]/));
value = "2.879"
正则表达式不匹配值,但它匹配 (value+" ") 因此我认为 $ 不匹配?这是为什么?
$ 不应该验证字符串的结尾吗?
$
等特殊字符在字符 class 中的含义不同。在字符 class 中,它们只是字符,因此 [ $]
将匹配 space 字符或 $
字符。它不会匹配字符串的结尾。
如果你想匹配 space 个字符或字符串的结尾,你应该使用交替,即 ( |$)
.