| 
	| 
	
	| 
		
	| 
			
			 
			
				12.07.2011, 04:13
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 23.04.2011 
						Сообщений: 26
					 
		
 |  |  
	| 
				помогите пожалуйста с регулярным выражением
			 Здраствуйте!
 Из базы данных я получаю строку вида - 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, 12:24
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| Вариант ... 
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)
 |  |  
	| 
		
	| 
			
			 
			
				12.07.2011, 12:41
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 29.06.2011 
						Сообщений: 445
					 
		
 |  |  
	| почему уж тогда не replace, короче будет: 
str.replace(reg, "'rgba',{r:$1,g:$2,b:$3,a:$4}")
 |  |  
	| 
		
	| 
			
			 
			
				12.07.2011, 17:13
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 23.04.2011 
						Сообщений: 26
					 
		
 |  |  
	| спасибо рони, то что нужно, заодно могу делать математические операции, а мне какраз это и нужно=)
 ваый, этот вариант я пробовал, но ничего не вышло
 |  |  
	| 
		
	| 
			
			 
			
				12.07.2011, 18:28
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 12.07.2011 
						Сообщений: 7
					 
		
 |  |  
	| 
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);
Вроде так)))  			 Последний раз редактировалось Jack_White, 12.07.2011 в 18:33.
 |  |  
	| 
		
	| 
			
			 
			
				12.07.2011, 18:33
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 29.06.2011 
						Сообщений: 445
					 
		
 |  |  
	| 
	
 
	| Сообщение от Jack_White   |  
	| 
var lastR='';var r1='';
var r='rgba(255,255,255,0.9)';
r=r.replace(')','}');
lastR=r.indexOf(',');
r1=r.substring('0',(lastR+1));
r1+='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);
Вроде так)))
   |  
	
  |  |  
	| 
		
	| 
			
			 
			
				12.07.2011, 18:35
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 12.07.2011 
						Сообщений: 7
					 
		
 |  |  
	| 
	
 
	| Сообщение от ваый   |  
	|   |  
	
  Чего? |  |  
	| 
		
	| 
			
			 
			
				12.07.2011, 18:45
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 29.06.2011 
						Сообщений: 445
					 
		
 |  |  
	| ну, я оценил чувство юмора. это же замечательно.но это же не всерьез, да?
 |  |  
	| 
		
	| 
			
			 
			
				12.07.2011, 19:17
			
			
			
		 |  
	| 
		
			
			| Особый гость     |  | 
					Регистрация: 02.04.2010 
						Сообщений: 4,260
					 
		
 |  |  
	| 
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}]
			 Последний раз редактировалось monolithed, 12.07.2011 в 22:46.
 |  |  |  |