基本的に、私はそのような声明を持っています。
$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))";
このようなもの。
基本的に、私はそのような声明を持っています。
$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))";
このようなもの。
少し調べた後、これは数学的論理に基づいて文字列を分割する方法の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"] など。