 
			
				13.02.2012, 14:46
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.10.2011 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				как исправить ф-ию? генератор паролей.
			 
			
		
		
		
		Есть функция генератора паролей следующего вида: 
<HEAD >
 
<SCRIPT LANGUAGE="JavaScript">
 
function a1(q) {
  var i=document.myform.passlength.value;
  document.myform.password.value="";
  if (i==8)  document.myform.password.size=8; 
  if (i==10) document.myform.password.size=10;
  if (i==12) document.myform.password.size=12;
}
function getRandomNum(lbound, ubound) {
                return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}
 
function getRandomChar() {
var upperChars = "0123456789abcdefghjkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ";
var charSet = "";
charSet += upperChars;
return charSet.charAt(getRandomNum(0, charSet.length));
}
 
function getPassword(length) {
var rc = "";
if (length > 0)
for (var idx = 0; idx < length; ++idx) {
                rc = rc + getRandomChar();
                }
return rc;
}
</script>
 
</HEAD>
проблема заключается в том, что он периодически выдает комбинацию без цифр. Подскажите плз, как переделать так, чтобы цифра там была всегда? т.е., например, 4-ый, 5-ый символы пароля - обязательно цифры? Заранее спс за help  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2012, 15:25
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 . 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.03.2010 
					
					
					
						Сообщений: 1,813
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Решил по другому сделать, долго не думал и вышло это: 
<script type="text/javascript">
	function gen(n){
		var arg = new Array();
		for(var i=0; i<n;i++) arg.push(rand(48,58), rand(65,91), rand(97,123))
		for(var j, x, y = arg.length; y; j = parseInt(Math.random() * y), x = arg[--y], arg[y] = arg[j], arg[j] = x);
		return String.fromCharCode.apply(this, arg);
	}
	function rand(min, max){
		return Math.floor(Math.random() * (max - min) + min);
	}
</script>
<input id="pass" type="text" />
<input type="button" value="Генерировать" onclick="document.getElementById('pass').value = gen(4)" />
Всегда состоит из четырёх цифр, а так же четырёх маленьких и четырёх больших символов.  
		
	
		
		
		
		
		
			
				__________________ 
				.
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось Skipp, 13.02.2012 в 16:46.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2012, 15:52
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.10.2011 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Skipp
			 
		
	 | 
 
	| 
		Всегда состоит из четырёх цифр, а так же четырёх маленьких и четырёх больших символов.
	 | 
 
	
 
 Генератор используется для получения паролей заданной длины, а именно 8, 10 и 12 символов. вашь подходит только для последнего варианта) 
а как же мне быть с 8-и символьным паролем? 
Можно не менять фунцию полностью, а задать, например, параметр, который будет отвечать за генерацию именно 4-ого символа паса?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2012, 16:03
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 . 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.03.2010 
					
					
					
						Сообщений: 1,813
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Последовательность моего скрипта n*3, вам такой не подойдёт? 
		
	
		
		
		
		
		
			
				__________________ 
				.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2012, 16:29
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 . 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.03.2010 
					
					
					
						Сообщений: 1,813
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
<script type="text/javascript">
	function gen(n){
		var arg = new Array();
		for(var i=0; i<n;i++) arg.push(rand(48,58), rand(65,91), rand(97,123))
		for(var j, x, y = arg.length; y; j = parseInt(Math.random() * y), x = arg[--y], arg[y] = arg[j], arg[j] = x);
		return String.fromCharCode.apply(this, arg);
	}
	function rand(min, max){
		return Math.floor(Math.random() * (max - min) + min);
	}
</script>
<input id="pass" type="text" />
<input type="button" value="Генерировать 12" onclick="document.getElementById('pass').value = gen(4)" />
<input type="button" value="Генерировать 10" onclick="document.getElementById('pass').value = gen(4).substr(1, 10)" />
<input type="button" value="Генерировать 8" onclick="document.getElementById('pass').value = gen(3).substr(1, 8)" />
 
		
	
		
		
		
		
		
			
				__________________ 
				.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2012, 16:55
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 . 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.03.2010 
					
					
					
						Сообщений: 1,813
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Сделал чуток по проще, в функцию просто передаётся необходимая длина. 
<script type="text/javascript">
function gen(l){
		var arg = new Array(), l = l || 4;
		for(var i = 0; i < Math.round((l / 3) + 0.49); i++) arg.push(rand(48,58), rand(65,91), rand(97,123))
		for(var j, x, i = arg.length; i; j = parseInt(Math.random() * i), x = arg[--i], arg[i] = arg[j], arg[j] = x);
		return String.fromCharCode.apply(this, arg).substr(0, l);
	}
	function rand(min, max){
		return Math.floor(Math.random() * (max - min) + min);
	}
</script>
<input id="pass" type="text" />
<input type="button" value="Генерировать 12" onclick="document.getElementById('pass').value = gen(12)" />
 
		
	
		
		
		
		
		
			
				__________________ 
				.
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось Skipp, 13.02.2012 в 17:20.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2012, 17:20
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.10.2011 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Skipp, глянь как это все выглядит в конечном варианте, архив я приложил.. 
В JS я есмь дерево еще то) все сделал по аналогии с готовых скриптов, поэтому если ты внедришь свое творение в мой чудо-генератор -  счастью и благодарности моим не будет предела!   
		
	
		
		
			
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2012, 17:26
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 . 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.03.2010 
					
					
					
						Сообщений: 1,813
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Прости, но это уж делай сам. 
		
	
		
		
		
		
		
			
				__________________ 
				.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2012, 17:28
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.10.2011 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Skipp, 
 ок, спс за help 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |