我需要用多个定界符分割一个字符串。
我的字符串是var str = "2$4@3*5"
我的定界符(分隔符)数组为var del = ["$","@", "*"]
我正在使用正则表达式,但是它不起作用。
str.split(new RegExp(del.join('|'), 'gi'));
结果应为["2","4","3","5"]
但是我遇到错误SyntaxError: Invalid regular expression: /*/: Nothing to repeat
当我移除*
时,结果数组为["2$3',"3", "5"]
如何从多个定界符中拆分多个定界符?
为什么这不适用于$
和*
?
答案 0 :(得分:1)
您需要先转义特殊字符-this answer中的replace
函数:
var str = "2$4@3*5";
var del = ["$", "@", "*"];
const res = str.split(new RegExp(del.map(e => e.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')).join("|"), "gi"));
console.log(res);
答案 1 :(得分:0)
尝试这样。
我在split中传递了Regex表达式。
var str = "2$4@3*5"
var res= str.split(/[$,@,*]+/)
console.log(res)