Aetae, krutoy, в принципе рабочий код, я уже запостил выше, позаимствовав у krutoy строку .replace(/<[^>]+>/g, '')
на данном примере все работает отлично, дальше - буду тестить Спасибо за помощь Впрочем, если кто предложит более оптимальный вариант обработки, буду оч. благодарен |
var htm='<tbody style="outline: 1px solid blue;"> <tr> <td class="complKnowlege" style="vertical-align:middle;text-align:center"> 1 </td> <td class="complKnowlege" style="vertical-align:middle;"> АБС "ЭНИКЕЙЩИКИ И КО" </td> <td style="vertical-align:middle;"> ЮЛ </td> <td style="vertical-align:middle;"> 032600003909 </td> <td style="vertical-align:middle;"> 000240014809 </td> <td style="vertical-align:middle;"> 11.02.2000 </td> <td style="vertical-align:middle;"> </td> <td class="complKnowlege" style="vertical-align:middle;"> </td> <td class="complKnowlege" style="vertical-align:middle;"> Дата :<span class="grayText">05.06.2009 </span> Тип :<span class="grayText">Признан недействительным </span> </td> </tr> <tr> <td class="complKnowlege" style="vertical-align:middle;text-align:center"> 1 </td> <td class="complKnowlege" style="vertical-align:middle;"> АБС "ЭНИКЕЙЩИКИ И КО" </td> <td style="vertical-align:middle;"> ЮЛ </td> <td style="vertical-align:middle;"> 032600003909 </td> <td style="vertical-align:middle;"> 000240014809 </td> <td style="vertical-align:middle;"> 11.02.2000 </td> <td style="vertical-align:middle;"> </td> <td class="complKnowlege" style="vertical-align:middle;"> </td> <td class="complKnowlege" style="vertical-align:middle;"> Дата :<span class="grayText">05.06.2009 </span> Тип :<span class="grayText">Признан недействительным </span> </td> </tr> </tbody>'; if (!String.prototype.trim) { String.prototype.trim = (function(rtrim){ return function trim(){ return this.replace(rtrim, ''); } }(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g)); } if (!Array.prototype.map) { Array.prototype.map = function(mapper, that) { var other = new Array(this.length); for (var i = 0, n = this.length; i < n; i++) if (i in this) other[i] = mapper.call(that, this[i], i, this); return other; }; } function parse(htm){ return htm.split(/<\/tr[^>]*>\s*<tr[^>]*>/).map(function(row){ return row.split(/<\/td[^>]*>\s*<td[^>]*>/).map(function(cell){ return cell.replace(/<[^>]+>/g, '').trim() }) }) } alert(JSON.stringify( parse(htm) , null, '\t')) JSON тут только для отображения результатов. И всё же я настоятельно рекомендую не парсить html регулярками, а поступить как я сказал коммент назад, т.к. всегда есть шанс нарваться на подводные камни. |
Цитата:
Спасибо.. присмотрюсь к вашему решению, хотя, на данном этапе реализации, мой вариант несколько компакней и предположительно - его вполне хватает для поставленной задачи |
Cache, ты сказал что рядов может быть несколько - тогда твой вариант сломается - эт раз.
Попробуй убрать из кода полифилы Array.prototype.map и String.prototype.trim. Если JSON работает то и они скорее всего не нужны. Тогда код всего 6 строк - эт два.) |
Часовой пояс GMT +3, время: 14:08. |