我有以下字符串:
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('\.|\\')
(即,没有括号)
'\.'
和'\\'
都可以单独传递但不能组合使用。
请帮助我正则表达式高手!
答案 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;}