当在 JavaScript 中使用 /[ -_]+/
作为 string.split 的参数时,它的作用就像 /['\"]+/
"a'b".split(/[ -_]+/)
'a"b'.split(/[ -_]+/)
返回
["a", "b"]
我只在精确的正则表达式中看到此行为:[ -_]
即空格、连字符和下划线。如果我删除这 3 个字符中的任何一个,它的行为(在我看来)是正确的,不会拆分 ' 和 "
这种行为正确吗?
最佳答案
-
has special meaning inside of character classes.它表示一系列字符。在本例中,范围是从空格 (ASCII 32) 到下划线 (ASCII 95)。由于 '
和 "
的 ASCII 代码分别为 39 和 34,因此它们落在该范围内。
如果你想在文字 -
上进行分割,请转义它;
"a'b".split(/[ \-_]+/)
或者将连字符设为字符类的第一个字符:
"a'b".split(/[- _]+/)
关于javascript - 为什么 JavaScript string.split(/[ -_]+/) 的行为就像引号 (' and ") 包含在 [group] 中一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24576871/