 
			
				17.05.2013, 11:28
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.07.2011 
					
					
					
						Сообщений: 207
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Разбиение числа по 3 символа (изящный способ)
			 
			
		
		
		
		Всем привет!!! Задался недавно проблемой есть допустим строка 50000, как при помощи js преобразовать ее в 50 000, наиболее изящным способом. Я уверен что есть такое решение.... О искусники помогите    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.05.2013, 11:47
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 ✔ 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.06.2012 
					
					
					
						Сообщений: 513
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
function gap(n) {
  return n.replace(/\d{0,3}(?=(\d{3})+$)/g, "$& ") ;
}
alert([gap("50000"), gap("1234567890")]) ;
 
		
	
		
		
		
		
		
			
				__________________ 
				★ ²º¹³ ☆
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
	
		
	
		
		
		
			
			 
			
				17.05.2013, 11:49
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.09.2011 
					
					
					
						Сообщений: 523
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		В книге по регуляркам было 
var str = '5000022222121';
var reg = /(\d)(?=(\d\d\d)+\b)/ig
alert(str.replace(reg, '$1 '))
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.05.2013, 01:05
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.07.2011 
					
					
					
						Сообщений: 207
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 ksa, я не знал как задать поисковой запрос)))) вводил всякую чушь например разбиение числа..... и тп))) 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.05.2013, 01:08
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.07.2011 
					
					
					
						Сообщений: 207
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.05.2013, 01:09
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.07.2011 
					
					
					
						Сообщений: 207
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Hekumok, 
 Спасибо, это именно тот исскусный способ)))) + 1 в копилку 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.05.2013, 11:28
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Вариант от  zebra лучше, но так няшнее:
 
function gap(str, separator) {
  return str.replace(/\d(?=(?:\d{3})+\b)/g, "$&" + (separator||' ')) ;
}
alert([gap("прапрапр 50000 рпвр 5999 вопр", ','), gap("1234567890"), gap("123456789", '-')]) ;
Вариант от  Hekumok ошибочен в {0,3}, ибо:
 
function gap(n) {
  return n.replace(/\d{0,3}(?=(\d{3})+$)/g, "$&-") ;
}
alert(gap("123456789")) ;
 
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.05.2013, 12:32
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.09.2011 
					
					
					
						Сообщений: 523
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Кирюха =)
			
		
	 | 
 
	| 
		А что есть отдельная книга посвященная регулярным выражениям?????
	 | 
 
	
 
 Да есть. Читаю как раз. Называется "регулярные выражения 3-е издание"  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.05.2013, 19:56
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.07.2011 
					
					
					
						Сообщений: 207
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Aetae
			 
		
	 | 
 
	
		Вариант от zebra лучше, но так няшнее: 
function gap(str, separator) {
  return str.replace(/\d(?=(?:\d{3})+\b)/g, "$&" + (separator||' ')) ;
}
alert([gap("прапрапр 50000 рпвр 5999 вопр", ','), gap("1234567890"), gap("123456789", '-')]) ;
 
 
 
Вариант от Hekumok ошибочен в {0,3}, ибо: 
function gap(n) {
  return n.replace(/\d{0,3}(?=(\d{3})+$)/g, "$&-") ;
}
alert(gap("123456789")) ;
	 | 
 
	
 
 И правда няшней, возьму ваш))))  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |