4Ev*_*ive 0 javascript regex string split
当使用/[ -_]+/作为参数传递给在JavaScript string.split,它的作用就像是/['\"]+/
"a'b".split(/[ -_]+/)
'a"b'.split(/[ -_]+/)
Run Code Online (Sandbox Code Playgroud)
返回
["a", "b"]
Run Code Online (Sandbox Code Playgroud)
我只用确切的正则表达式看到这种行为:[ -_]即空格、连字符和下划线。如果我删除这 3 个字符中的任何一个,它的行为(在我看来是)正确的,不会在 ' 和 " 上拆分
这种行为是否正确?
-在字符类中具有特殊含义。它表示一系列字符。在这种情况下,范围是从空格 (ASCII 32) 到下划线 (ASCII 95)。因为 ASCII 码'和"(分别)是39和34它们落在该范围内。
如果要拆分文字-,请转义它;
"a'b".split(/[ \-_]+/)
Run Code Online (Sandbox Code Playgroud)
或者使连字符成为字符类的第一个字符:
"a'b".split(/[- _]+/)
Run Code Online (Sandbox Code Playgroud)