Показать сообщение отдельно
  #1 (permalink)  
Старый 23.03.2012, 13:33
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Одноразовый парсер. нужен многоразовый ))
Парсим строку, получим её из css стиля.
cssCode=document.styleSheets[0].ownerNode.innerHTML;
 // получим h2{ font-color:#900; font-color:#555; font-size:15px; }"


парсит следующая конструкция.

var css='font-color',
     test=new RegExp(css+'.*:(.*);', 'im');
//здесь выведем результат, на всякий случай двумя функциями
console.log(cssCode.match(test));
console.log(test.exec(cssCode));


В консоле появится вот это.
["font-color:#900;", "#900"]
["font-color:#900;", "#900"]

данные я получил именно те что хотел.
но вот неувязка.
Почему распарсилась только строка font-color:#900;
а вторая строка font-color:#555; нет ???

То есть возвращается только первый найденный элемент.
================================================== =======
upd: такс проблема несколько прикольнее.
первая строка возвращается только в том случае если
cssCode=document.styleSheets[0].ownerNode.innerHTML;


а если указать строку непосредственно, и без перевода каретки
cssCode=	"h2{ font-color:#900; font-color:#555; font-size:15px; }";

тогда возвращается строка от первого font-color до конца строки.

хм получается что парсер парсит от font-color до перевода каретки, типо того.

Последний раз редактировалось DjDiablo, 23.03.2012 в 14:00.
Ответить с цитированием