function autogeneratepassword(params) {
this.chartype_upper = params.chartype_upper
this.chartype_lower = params.chartype_lower
this.chartype_number = params.chartype_number
this.chartype_symbol = params.chartype_symbol
this.pwlength = params.pwlength
var symbols = new Array("!@#$%^&*()");
var lowercase = new Array("abcdefhjmnpqrstuvwxyz");
var uppercase = new Array("ABCDEFGHJKLMNPQRSTUVWYXZ");
var numbers = new Array("23456789");
var pwchars = new Array();
var passwd = document.getElementById('password');
passwd.value = '';
var passwordlength = this.pwlength;
if (this.chartype_upper) {
pwchars = pwchars.concat(uppercase)
}
if (this.chartype_lower) {
pwchars = pwchars.concat(lowercase)
}
if (this.chartype_number) {
pwchars = pwchars.concat(numbers)
}
if (chartype_symbol) {
pwchars = pwchars.concat(symbols)
}
pwchars = pwchars.join("")
for ( i = 0; i < passwordlength; i++ ) {
passwd.value += pwchars.charAt( Math.floor( Math.random() * pwchars.length ) )
}
return passwd.value;
}
Refactorings
No refactoring yet !
Ants
January 14, 2010, January 14, 2010 02:48, permalink
I'm no JavaScript expert. Here's my first pass at refactoring to get rid of some unneeded assignments and braces.
Sige!
function autogeneratepassword(params) {
var pwchars = "";
if (params.chartype_upper)
pwchars += "ABCDEFGHJKLMNPQRSTUVWYXZ";
if (params.chartype_lower)
pwchars += "abcdefhjmnpqrstuvwxyz";
if (params.chartype_number)
pwchars += "23456789";
if (params.chartype_symbol)
pwchars += "!@#$%^&*()";
pwchars = pwchars.split('');
var length = params.pwlength;
var passwd = [];
while (length-- > 0)
passwd.push(pwchars[Math.floor(Math.random() * pwchars.length)]);
return passwd.join('');
}
paul.wilkins.myopenid.com
January 15, 2010, January 15, 2010 01:39, permalink
Here's a further refinement
function autogeneratepassword(params) {
var passwd = '',
length = params.pwlength,
pwchars = '';
pwchars += (params.chartype_upper) ? 'ABCDEFGHJKLMNPQRSTUVWYXZ' : '';
pwchars += (params.chartype_lower) ? 'abcdefhjmnpqrstuvwxyz' : '';
pwchars += (params.chartype_number) ? '23456789' : '';
pwchars += (params.chartype_symbol) ? '!@#$%^&*()' : '';
while (length-- > 0) {
passwd += pwchars.charAt[Math.floor(Math.random() * pwchars.length)];
}
return passwd;
}
x-way
January 23, 2010, January 23, 2010 22:40, permalink
function autogeneratepassword(params) {
var passwd = '',
length = params.pwlength,
pwchars = (params.chartype_upper) ? 'ABCDEFGHJKLMNPQRSTUVWYXZ' : '';
pwchars += (params.chartype_lower) ? 'abcdefhjmnpqrstuvwxyz' : '';
pwchars += (params.chartype_number) ? '23456789' : '';
pwchars += (params.chartype_symbol) ? '!@#$%^&*()' : '';
while (length-- > 0) {
passwd += pwchars.charAt[Math.floor(Math.random() * pwchars.length)];
}
return passwd;
}
Good day guys,
Ive jst made a function to auto-generate password and the feature is look-like Cpanel password generator..
My code below looks ugly, is there other way we can refactor it?
Thanks
Arman Ortega
website: nurv7.com
profile: facebook.com/artheman