0

基本的に、私はそのような声明を持っています。

$scope.promotion = "((A|B)|(C|D)) & (E | ((F|G) & (H|I))) & (J | K)";

括弧に基づいてこの文字列を区切ることは可能ですか? 私はそのようにリターンを得るように;

$scope.promo1 = "(A|B)";
$scope.promo2 = "(C|D)";
$scope.promo3 = "((A|B) | (C|D))";

このようなもの。

4

1 に答える 1

1

少し調べた後、これは数学的論理に基づいて文字列を分割する方法の1つの解決策であると言えます。

$scope.array1 = [];
$scope.array2 = [];
var txt1 = "((A|B)|(C|D)) & (E | ((F|G) & (H|I))) & (J | K)";

for(var i=0; i < txt1.length; i++){
   if(txt1.charAt(i) === '('){
     $scope.array1.push(i);
   }
   if(txt1.charAt(i) === ')'){
     $scope.array2.push(txt1.substring($scope.array1.pop()+1,i));
   }
} 

したがって、array2 は次のようなものを返します。["A|B", "C|D"] など。

于 2017-01-12T07:35:08.163 に答える