Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 16.11.2014, 00:36
Кандидат Javascript-наук
Отправить личное сообщение для Cache Посмотреть профиль Найти все сообщения от Cache
 
Регистрация: 02.05.2013
Сообщений: 111

Aetae, krutoy, в принципе рабочий код, я уже запостил выше, позаимствовав у krutoy строку .replace(/<[^>]+>/g, '')
на данном примере все работает отлично, дальше - буду тестить
Спасибо за помощь
Впрочем, если кто предложит более оптимальный вариант обработки, буду оч. благодарен

Последний раз редактировалось Cache, 16.11.2014 в 00:50. Причина: ошибка, код позаимствован из кода krutoy
Ответить с цитированием
  #12 (permalink)  
Старый 16.11.2014, 00:40
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

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 регулярками, а поступить как я сказал коммент назад, т.к. всегда есть шанс нарваться на подводные камни.
__________________
29375, 35
Ответить с цитированием
  #13 (permalink)  
Старый 16.11.2014, 00:58
Кандидат Javascript-наук
Отправить личное сообщение для Cache Посмотреть профиль Найти все сообщения от Cache
 
Регистрация: 02.05.2013
Сообщений: 111

Сообщение от Aetae Посмотреть сообщение
JSON тут только для отображения результатов.

И всё же я настоятельно рекомендую не парсить html регулярками, а поступить как я сказал коммент назад, т.к. всегда есть шанс нарваться на подводные камни.
я, кстати - ошибся, на JSON приложение не ругается, значит не работает только с куками и DOM'ом, в т.ч. с document.
Спасибо.. присмотрюсь к вашему решению, хотя, на данном этапе реализации, мой вариант несколько компакней и предположительно - его вполне хватает для поставленной задачи
Ответить с цитированием
  #14 (permalink)  
Старый 16.11.2014, 01:06
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Cache, ты сказал что рядов может быть несколько - тогда твой вариант сломается - эт раз.
Попробуй убрать из кода полифилы Array.prototype.map и String.prototype.trim. Если JSON работает то и они скорее всего не нужны. Тогда код всего 6 строк - эт два.)
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация таблицы с многими параметрами Иннокентий Общие вопросы Javascript 1 14.09.2014 21:18
Создание таблицы с чекбоксом используя массив jeka Javascript под браузер 3 09.04.2014 17:23
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30