Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 22.10.2011, 13:28
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Что вы таки под этим опять подразумеваете?
__________________
29375, 35
Ответить с цитированием
  #12 (permalink)  
Старый 22.10.2011, 13:35
Профессор
Посмотреть профиль Найти все сообщения от Solovei95
 
Регистрация: 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.
Ответить с цитированием
  #13 (permalink)  
Старый 22.10.2011, 13:45
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 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.
Ответить с цитированием
  #14 (permalink)  
Старый 22.10.2011, 13:53
Профессор
Посмотреть профиль Найти все сообщения от Solovei95
 
Регистрация: 15.03.2011
Сообщений: 353

Aetae,
Я все равно не понимаю - у тебя вообще не массив (точнее не объект)...
Кароче - есть что-нибудь более понятное?
Ответить с цитированием
  #15 (permalink)  
Старый 22.10.2011, 13:58
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Solovei95
Я все равно не понимаю - у тебя вообще не массив (точнее не объект)...
Кароче - есть что-нибудь более понятное?
ну как это не объект? объект и пройтись по всем его свойствам не составляет труда,так же как узнать их имена и значения
Ответить с цитированием
  #16 (permalink)  
Старый 22.10.2011, 13:59
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 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.
Ответить с цитированием
  #17 (permalink)  
Старый 22.10.2011, 14:18
Профессор
Посмотреть профиль Найти все сообщения от Solovei95
 
Регистрация: 15.03.2011
Сообщений: 353

Все - понятно! Но можно ли найти что-то общее:
url -moz-linear-gradient
В RegExp.
Ответить с цитированием
  #18 (permalink)  
Старый 22.10.2011, 14:29
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Можно, но включить все варианты вручную - надежнее.
Как-то так:
/[^, ].+?(?=, [a-z\-]{4,}|$)/g
__________________
29375, 35

Последний раз редактировалось Aetae, 22.10.2011 в 14:43.
Ответить с цитированием
  #19 (permalink)  
Старый 22.10.2011, 14:46
Профессор
Посмотреть профиль Найти все сообщения от Solovei95
 
Регистрация: 15.03.2011
Сообщений: 353

удалил коммент

Последний раз редактировалось Solovei95, 22.10.2011 в 15:05.
Ответить с цитированием
  #20 (permalink)  
Старый 22.10.2011, 14:50
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Хех, я какбэ и так универсальную функцию сделал:
global.splitCssProp(prop){
  return typeof prop == 'string' ? prop.match(/[^, ].+?(?=, [a-z\-]{4,}|$)/g) : *!*prop.join(', ')*/!*;
}

Те, если аргументом идёт массив, то она возвращает строку.)
Совсем вы, твоварисчъ, бездумно копируете.
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
dom и regexp KOLANICH Events/DOM/Window 6 16.01.2010 22:51
evalScripts без regexp и eval Diem Events/DOM/Window 1 30.07.2009 17:34
мааленький вопрос по Regexp:) mirniy Общие вопросы Javascript 1 22.01.2009 20:47
RegExp & Mozilla (быстродействие) tau Общие вопросы Javascript 9 24.11.2008 16:35
RegExp и unicode Yury900 Общие вопросы Javascript 7 13.05.2008 00:19