0

我正在尝试将以下内容拆分为多个字符并将它们保存在数组中。

拆分为:&&、||、(, )

"arg&&(arg||(!arg&&arg))".split(/([)||&&(])/);

我的回报应该是这样的:

["arg","&&","(","arg","||","(","!arg","&&","arg",")",")"]
4

1 回答 1

1

捕获组保存在结果数组中。

|应该转义,因为它在正则表达式中有特殊含义。(并且)也有特殊的含义,但是在里面[],它们是从字面上匹配的。

> "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", ")", ")"]
于 2013-09-30T12:08:30.080 回答