Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Я не разбираюсь в RegExp (https://javascript.ru/forum/misc/22489-ya-ne-razbirayus-v-regexp.html)

Aetae 23.10.2011 04:47

Все работает нормально.(на то оно и regexp)
Не работать могло из-за того, что в примере из этой темы после запятой нет пробела. Браузер пробел ставит, потому всё гуд. Если нужно парсиь ещё и неформатированные строки, то тут уж разрастется regexp естесно, но это уже не моё дело.
prop="url(clock.png), -moz-linear-gradient(bottom, #F7E82C 49%, #FFFF47 75%, #FFFF64 88%)"
alert(prop.match(/[^, ].+?(?=, url|, -moz-linear-gradient|$)/g).join('\n\n'))


Да и вообще в хроме всё также отлично работет:
<div id="block" style="
width:800px;height:132px;
background-image:url(http://javascript.ru/forum/images/smilies/sad.gif),
-webkit-gradient(linear,center bottom,center top, color-stop(49%, #F7E82C), color-stop(75%, #FFFF47), color-stop(88%, #FFFF64)); 
background-image:url(http://javascript.ru/forum/images/smilies/sad.gif),
-moz-linear-gradient(bottom, #F7E82C 49%, #FFFF47 75%, #FFFF64 88%);
"></div>

<script>

function st(prop){
 return typeof prop == 'string' ? prop.match(/[^, ].+?(?=, url|, linear-gradient|, -moz-linear-gradient|, -webkit-gradient|$)/g) : prop.join(', ');
}
a=document.getElementById("block").style;

alert(st(a.backgroundImage).join('\n\n'))

</script>

Запарил мозги бедному человеку.:(

melky 23.10.2011 05:24

точно! я забыл про это

ответ можно было написать в 1 строчку :)
Цитата:

Сообщение от Aetae (Сообщение 132335)
Не работать могло из-за того, что в примере из этой темы после запятой нет пробела. Браузер пробел ставит, потому всё гуд.



Часовой пояс GMT +3, время: 05:56.