помогите пожалуйста с регулярным выражением
Здраствуйте!
Из базы данных я получаю строку вида - 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} пожалуйста помогите очень нужно=( всем зараннее огромное спасибо |
Вариант ...
var reg = /^(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]+)\)$/; var str = 'rgba(255,255,255,0.9)'; var arr = str.match(reg); if (arr) str = arr[1]+',{r:'+arr[2]+',g:'+arr[3]+',b:'+arr[4]+',a:'+arr[5]+'}'; alert(str) |
почему уж тогда не replace, короче будет:
str.replace(reg, "'rgba',{r:$1,g:$2,b:$3,a:$4}") |
спасибо рони, то что нужно, заодно могу делать математические операции, а мне какраз это и нужно=)
ваый, этот вариант я пробовал, но ничего не вышло |
var lastR='';var r1=''; var r='rgba(255,255,255,0.9)'; r=r.replace(')','}'); lastR=r.indexOf(','); r1=r.substring('0',(lastR+1))+'g:'; r=r.substr(lastR+1); r1+=r.substring(r,r.indexOf(',')+1)+'b:'+r.substring((r.indexOf(',')+1),r.lastIndexOf(',')+1)+'a:'+r.substr(r.lastIndexOf(',')+1); r1=r1.replace('rgba(','rgba,{r:'); alert(r1); Вроде так))) :) |
Цитата:
|
Цитата:
|
ну, я оценил чувство юмора. это же замечательно.
но это же не всерьез, да? |
var array = ['rgba', {}], expr = 'rgba(255,255,255,0.9)'.match(/[\d.]+/g), i = expr.length; while(i--) { array[1][array[0].split(/\.*/)[i]] = expr[i]; } alert(array); //array.toSource(): ['rgba', {r:255, g:255, b:255, a:0.9}] |
Часовой пояс GMT +3, время: 13:45. |