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 に答える