This question already has answers here:
Is there a RegExp.escape function in Javascript?
                            
                                (14个回答)
                            
                    
                在10个月前关闭。
        

    

我需要用多个定界符分割一个字符串。

我的字符串是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"]

如何从定界符数组中拆分多个定界符?

为什么在$*下不起作用?

最佳答案

您需要先转义特殊字符-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);

关于javascript - 从数组中使用多个定界符分割字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56897612/

10-16 06:57