Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   регулярное выражение, помогите (https://javascript.ru/forum/jquery/18693-regulyarnoe-vyrazhenie-pomogite.html)

serhanters 12.07.2011 03:45

регулярное выражение, помогите
 
Здраствуйте!

Из базы данных я получаю строку вида - rgba(255,255,255,0.9)

написал шаблон регулярного выражения который выберает данный вид
^rgba\(([01]?\d\d?|2[0-4]\d|25[0-5])\,([01]?\d\d?|2[0-4]\d|25[0-5])\,([01]?\d\d?|2[0-4]\d|25[0-5])\,([1]|[0].[0-9]+)\)$


теперь вот вопросс, скажите, а как мне теперь преобразовать строку rgba(255,255,255,0.9) в такой вид - 'rgba',{r:255,g:255,b:255,a:0.9}

пожалуйста помогите очень нужно=( всем зараннее огромное спасибо

ваый 12.07.2011 10:01

var reg = /^rgba\(([01]?\d\d?|2[0-4]\d|25[0-5])\,\s*?([01]?\d\d?|2[0-4]\d|25[0-5])\,\s*?([01]?\d\d?|2[0-4]\d|25[0-5])\,\s*?([1]|[0].[0-9]+)\)$/;

var m = 'rgba(255, 134, 43, 0.5)'.match(reg);
console.log(m); // тут все вхождения

Black_Prince 12.07.2011 10:14

из базы данных - т.е. через пхп-скрипт?
Если да - почему бы не заменить в самом пыхе?

$str = "rgba(255,255,255,0.9)";
echo preg_replace("/^rgba\(([01]?\d\d?|2[0-4]\d|25[0-5])\,([01]?\d\d?|2[0-4]\d|25[0-5])\,([01]?\d\d?|2[0-4]\d|25[0-5])\,([1]|[0].[0-9]+)\)$/", "{r:$1,g:$2,b:$3,a:$4}", $str);


кстати, регулярку думаю можно сократить до:
"/^rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),((0|1)\.(\d)) \)$/"


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