用“ \\”和“。”分割字符串。与正则表达式

时间:2019-05-11 02:56:42

标签: javascript arrays regex string split

我有以下字符串:

  var str = 'd:\\projects\\my_project\\dist\\js\\example.js'

我想按如下所示将字符串拆分为一个数组:

['d:', 'projects', 'my_project', 'dist', 'js', 'example', 'js']

如何使用str.split(regex)执行此操作?我需要什么合适的正则表达式?

已经尝试过str.split('(\.|\\)')str.split('\.|\\')(即,没有括号)

'\.''\\'都可以单独传递但不能组合使用。

请帮助我正则表达式高手!

3 个答案:

答案 0 :(得分:4)

您要将字符串传递到split(),需要传递RegExp()

注意:如果您将使用/(\.|\\)/)之类的括号,则结果还将包括.\\

var str = 'd:\\projects\\my_project\\dist\\js\\example.js'
console.log(str.split(/\.|\\/))

答案 1 :(得分:3)

将正则表达式传递给split

var str = 'd:\\projects\\my_project\\dist\\js\\example.js';
const res = str.split(/\.|\\/);
console.log(res);
.as-console-wrapper { max-height: 100% !important; top: auto; }

您正在传递一个字符串-它正在寻找找不到的文字模式.|\。正则表达式(regex)使用斜杠/,而不使用引号'"

答案 2 :(得分:3)

其他答案已经说明您需要将正则表达式传递给String.split()而不是string。因此,您也可以使用以下正则表达式:/[\\.]/。此正则表达式定义了Character Set

var str = 'd:\\projects\\my_project\\dist\\js\\example.js';
console.log(str.split(/[\\.]/));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}