0
我试图通过多个字符分割以下字符并将它们保留在数组中。Javascript正则表达式由多个字符分隔并保留分隔符
分裂的条件:& &,||(,)
"arg&&(arg||(!arg&&arg))".split(/([)||&&(])/);
我的回报是假设看起来像这样:
["arg","&&","(","arg","||","(","!arg","&&","arg",")",")"]
我试图通过多个字符分割以下字符并将它们保留在数组中。Javascript正则表达式由多个字符分隔并保留分隔符
分裂的条件:& &,||(,)
"arg&&(arg||(!arg&&arg))".split(/([)||&&(])/);
我的回报是假设看起来像这样:
["arg","&&","(","arg","||","(","!arg","&&","arg",")",")"]
捕获组保存在生成的数组。
|
应该逃脱,因为它在正则表达式中有特殊含义。 (
和)
也有特殊含义,但在[]
里面,它们的字面意思相符。
> "arg&&(arg||(!arg&&arg))".split(/([()]|&&|\|\|)/)
["arg", "&&", "", "(", "arg", "||", "", "(", "!arg", "&&", "arg", ")", "", ")", ""]
要删除空字符串,使用Array filter method
:
> "arg&&(arg||(!arg&&arg))".split(/([()]|&&|\|\|)/).filter(function(x) { return x; })
["arg", "&&", "(", "arg", "||", "(", "!arg", "&&", "arg", ")", ")"]
闪电般的速度..谢谢! – jfutch