以下を複数の文字で分割し、それらを配列に保持しようとしています。
分割: &&、||、(、)
"arg&&(arg||(!arg&&arg))".split(/([)||&&(])/);
私のリターンは次のようになります。
["arg","&&","(","arg","||","(","!arg","&&","arg",")",")"]
以下を複数の文字で分割し、それらを配列に保持しようとしています。
分割: &&、||、(、)
"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", ")", ")"]