сначала разделите строку побитовым ИЛИ '|' а затем с помощью логического ИЛИ '||' в jquery - PullRequest
0 голосов
/ 05 августа 2020

У меня есть строка st="product1 || 78,500/- | product2,product3,product4 || 48,500/-"

Сначала я выполнил разделение строки на '|'

arr=st.split('|'), затем еще одно разделение на '||' как arr[0].split('||')

, но он возвращает результат, например

product1,,78500/-,product2,product3,product3,product4,,58500

, но я хочу результат, как при первом разделении на '|'

product1||78500 и product2,product3,product4||58500

и со второго, разделенного на '||' результат должен быть таким:

product1,78500 и product1,product2,product3,product4,58500

как мы можем это сделать?

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Разделите данные, используя точные токены. | также учитывает ||.

st="product1 || 78,500/- | product2,product3,product4 || 48,500/-";
arr1=st.split(" | ")
arr2=[]
for(var i=0;i<arr1.length;i++)
document.getElementById("data").innerText+=arr1[i].split(" || ")+"\n";
<div id="data">

</div>
0 голосов
/ 05 августа 2020

Также альтернативный подход. Здесь мы заменяем одну строку другой, чтобы функция разделения не смешивалась.

Ниже приведен код

//First Split
var st = "product1 || 78,500/- | product2,product3,product4 || 48,500/-"
st = st.replace(/\|\|/g, "~");
arr = st.split("|");

//Second Split
var finalArr = [];
for (var i = 0; i < arr.length; i++) {
  finalArr.push(arr[i].split("~"));
}

console.log("First Split");
console.log(arr);
console.log("Second Split");
console.log(finalArr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...