基于javascript中的多个分隔符拆分字符串(包括单个反斜杠作为分隔符)[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我试图基于引用How split a string in jquery with multiple strings as separator的多个分隔符来分割字符串,但我需要包含一个反斜杠作为分隔符。

我有这个

var x = 'a/b\c?d@f#g$h%i^j&k:m;n,l.o(p)q{r}t!u`v~x-y+z=A*B_C|D"E\'F G';

var separators = ['/','\\\\','\\\?','@','#','\\\$','%','\\\^','&',':',';',',','\\\.','\\\(','\\\)','{','}','!','`','~','-','\\\+','=','\\\*','_','\\\|','\\\"','\\\'',' '];
console.log(separators.join('|'));
var tokens = x.split(new RegExp(separators.join('|'), 'g'));
console.log(tokens);

这是我的结果

["a", "bc", "d", "f", "g", "h", "i", "j", "k", "m", "n", "l", "o", "p", "q", "r", "t", "u", "v", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G"]

请注意,b \ c未被拆分

我在分隔符列表中尝试了'\\\','\\'和'\',但没有任何效果。

谢谢

javascript regex backslash separator delimiter-separated-values
1个回答
0
投票

根据Pushpesh Kumar Rajwanshi的回答,\充当逃脱角色。以下注释与\\作为有效的分隔符现在有效。

另见:How to split a string with a backslash in javascript?

var x = 'a/b\\c?d@f#g$h%i^j&k:m;n,l.o(p)q{r}t!u`v~x-y+z=A*B_C|D"E\'F G';

var separators = ['/','\\\\','\\\?','@','#','\\\$','%','\\\^','&',':',';',',','\\\.','\\\(','\\\)','{','}','!','`','~','-','\\\+','=','\\\*','_','\\\|','\\\"','\\\'',' '];
console.log(separators.join('|'));
var tokens = x.split(new RegExp(separators.join('|'), 'g'));
console.log(tokens);
© www.soinside.com 2019 - 2024. All rights reserved.