Как вытащить данные из текста при помощи JS?

Получаю следующую строку:
{"ddd":
"asfwewer",
"text":
"<tr data-user="12345" data-start="01">
<td class="text-truncate success" style="font-weight:600">543210</td>
<td class="text-truncate" style="font-weight:600">350 S</td>
<td class="text-truncate success" style="font-weight:600">352.00 S</td>
</tr>"
}

Нужно вытащить "350 S" и "352.00 S" и приравнять к var1 и var2 соответственно. Не знаю, как составить маску. Взываю к помощи.
  • Вопрос задан
  • 552 просмотра
Решения вопроса 1
@Bhudh
ES6:
let [var1, var2] = obj.text.match( /[0-9.]+ S/g );

Old JS:
var result = obj.text.match( /[0-9.]+ S/g ),
    var1 = result[0],
    var2 = result[1];
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Можно создать HTML элемент из разметки, и вытащить оттуда данные:

function getData(html) {
  var table = document.createElement('table');
  table.innerHTML = html;
  var tds = table.querySelectorAll('td');
  var values = [], i;
  for(i=0; i<tds.length; i++)
    values.push(tds[i].innerText);

  return values;
}

var html = [
 '<tr data-user="12345" data-start="01">'
,'<td class="text-truncate success" style="font-weight:600">543210</td>'
,'<td class="text-truncate" style="font-weight:600">350 S</td>'
,'<td class="text-truncate success" style="font-weight:600">352.00 S</td>'
,'</tr>'
].join('\n');

var values = getData( html);

var var1 = values[1]; // 350 S
var var2 = values[2]; // 352.00 S
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы