22.10.2011, 13:28
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Что вы таки под этим опять подразумеваете?
__________________
29375, 35
|
|
22.10.2011, 13:35
|
Профессор
|
|
Регистрация: 15.03.2011
Сообщений: 353
|
|
Ну проблема о5 - он на массив не разбирает! Мне просто нужен особый RegExp для split и все!
Почему помочm не можете?
Мне дано у элемента:
#box {
background-image:url(image.png), linear-gradient(bottom, rgb(76,47,92) 41%, rgb(107,76,120) 71%, rgb(140,107,156) 86%);
}
Нужно чтобы получилось:
array[0] = "url(image.png)";
array[1] = "linear-gradient(bottom, rgb(76,47,92) 41%, rgb(107,76,120) 71%, rgb(140,107,156) 86%)";
Я только знаю, что при помощи join можно начать обратный процесс:
background = array.join(",");
Последний раз редактировалось Solovei95, 22.10.2011 в 13:43.
|
|
22.10.2011, 13:45
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Разбирает:
<div id="block" style="background:url(clock.png),-moz-linear-gradient(bottom, #F7E82C 49%, #FFFF47 75%, #FFFF64 88%)"></div>
<script>
function st(prop){
return typeof prop == 'string' ? prop.match(/[^, ].+?(?=, url|, -moz-linear-gradient|$)/g) : prop.join(', ')
}
a=document.getElementById("block").style;
alert(st(a.background).join('\n\n'))
b=['url(no.png)'];
a.background=st(b);
alert(st(a.background).join('\n\n'))
</script>
__________________
29375, 35
Последний раз редактировалось Aetae, 22.10.2011 в 13:47.
|
|
22.10.2011, 13:53
|
Профессор
|
|
Регистрация: 15.03.2011
Сообщений: 353
|
|
Aetae,
Я все равно не понимаю - у тебя вообще не массив (точнее не объект)...
Кароче - есть что-нибудь более понятное?
|
|
22.10.2011, 13:58
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от Solovei95
|
Я все равно не понимаю - у тебя вообще не массив (точнее не объект)...
Кароче - есть что-нибудь более понятное?
|
ну как это не объект? объект и пройтись по всем его свойствам не составляет труда,так же как узнать их имена и значения
|
|
22.10.2011, 13:59
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Блджад. *facepalm*
<div id="block" style="background:url(clock.png),-moz-linear-gradient(bottom, #F7E82C 49%, #FFFF47 75%, #FFFF64 88%)"></div>
<script>
function st(prop){
return typeof prop == 'string' ? prop.match(/[^, ].+?(?=, url|, -moz-linear-gradient|$)/g) : prop.join(', ')
}
backgroundImage = document.getElementById("block").style.backgroundImage;
array=st(backgroundImage);
alert(array[0])
alert(array[1])
</script>
Так понятее?
Сообщение от Solovei95
|
Нужно чтобы получилось:
array[0] = "url(image.png)";
array[1] = "linear-gradient(bottom, rgb(76,47,92) 41%, rgb(107,76,120) 71%, rgb(140,107,156) 86%)";
|
__________________
29375, 35
Последний раз редактировалось Aetae, 22.10.2011 в 14:02.
|
|
22.10.2011, 14:18
|
Профессор
|
|
Регистрация: 15.03.2011
Сообщений: 353
|
|
Все - понятно! Но можно ли найти что-то общее:
url -moz-linear-gradient
В RegExp.
|
|
22.10.2011, 14:29
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Можно, но включить все варианты вручную - надежнее.
Как-то так:
/[^, ].+?(?=, [a-z\-]{4,}|$)/g
__________________
29375, 35
Последний раз редактировалось Aetae, 22.10.2011 в 14:43.
|
|
22.10.2011, 14:46
|
Профессор
|
|
Регистрация: 15.03.2011
Сообщений: 353
|
|
удалил коммент
Последний раз редактировалось Solovei95, 22.10.2011 в 15:05.
|
|
22.10.2011, 14:50
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Хех, я какбэ и так универсальную функцию сделал:
global.splitCssProp(prop){
return typeof prop == 'string' ? prop.match(/[^, ].+?(?=, [a-z\-]{4,}|$)/g) : *!*prop.join(', ')*/!*;
}
Те, если аргументом идёт массив, то она возвращает строку.)
Совсем вы, твоварисчъ, бездумно копируете.
__________________
29375, 35
|
|
|
|