Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 28.08.2014, 11:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от BlancoDima
Ну в том смысле что не канонично.
Все непонятней и непонятней...
Ответить с цитированием
  #12 (permalink)  
Старый 28.08.2014, 11:24
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Может, стоит использовать CSS-парсер?
Ответить с цитированием
  #13 (permalink)  
Старый 28.08.2014, 11:40
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

Ну если таки писать именно регулярки - я бы сделал как-то так :
var css='background-image: url("http://mysite.ru:8080/img/environm;ent:/circle_portret2.jpg"); position: absolute; top: 73px; left: 93px; background-position: 0px 0px; background-repeat: initial initial; ';
var out = {};
css.replace(/(?:^|;)\s*([-a-z]+)\s*:\s*([\s\S]*?)\s*(?=;(?![^(]*\))(?![^{]*\})|$)/gi,function(a,b,c){out[b] = c})
console.log(out)

Выглядит страшно, и не факт что какие-то грабли не упущены.)

ixth, во маньяки.))
Я конечно могу представить для чего он может понадобиться, но всё равно...)
__________________
29375, 35

Последний раз редактировалось Aetae, 28.08.2014 в 11:44.
Ответить с цитированием
  #14 (permalink)  
Старый 28.08.2014, 12:22
Аватар для BlancoDima
Интересующийся
Отправить личное сообщение для BlancoDima Посмотреть профиль Найти все сообщения от BlancoDima
 
Регистрация: 29.07.2014
Сообщений: 13

ksa
Сообщение от ksa Посмотреть сообщение
Все непонятней и непонятней...
Ну в том смысле что не академично


ixth Не хилая такая библиотечка, слишком сурово для моей задачи.


Aetae
А можно пояснения некоторые? В плане обучения так сказать.
Я понял всё до знака "*?", что это значит, это какое-то особое условие повторения? И это условие зависит от того что идёт в регулярке дальше?
И ещё совсем не понятно для чего вот эта часть "(?![^(]*\))(?![^{]*\})" - типа, если найдёшь эти символы, их не учитывай, или как это перевести на Русский правильно?
Ответить с цитированием
  #15 (permalink)  
Старый 28.08.2014, 12:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

:\s*([\s\S]*?)\s*(?=;(?![^(]*\))(?![^{]*\})|$)
[\s\S]*? - любые символы, до тех пор пока
?=;(?![^(]*\)) - за ними встретится ";" за которой не идёт ")" без предшествующей ей "(". Как-то так.)
Вообще по regexp куча статей(а также моих и не только ответов на этом форуме) - и именно сейчас мне лень в сотый раз расписывать, лучше погуглите.)

P.S. Ещё раз на всякий предупреждаю - вариант наверняка с граблями, и на каком-то случае может загнуться. Я такое обычно использую только при разовой работе для себя.
__________________
29375, 35

Последний раз редактировалось Aetae, 28.08.2014 в 12:41.
Ответить с цитированием
  #16 (permalink)  
Старый 28.08.2014, 13:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от BlancoDima
Ну в том смысле что не академично
Ясности это так и не дало...
Ответить с цитированием
  #17 (permalink)  
Старый 28.08.2014, 13:35
Аватар для BlancoDima
Интересующийся
Отправить личное сообщение для BlancoDima Посмотреть профиль Найти все сообщения от BlancoDima
 
Регистрация: 29.07.2014
Сообщений: 13

Aetae,
Цитата:
и именно сейчас мне лень в сотый раз расписывать
Спасибо, мне этого достаточно, как работает понял.
Ответить с цитированием
Ответ



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

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