How to generate random numbers with below criteria in Javascript
- String should contain at least 4 lower case letters from [a-z]
- String should contain at least 4 upper case letters from [A-Z]
- String should contain at least 4 numbers from [0-9]
Note: I don't want to use any JS library due to leagacy reasons
I tried below code but it doesn't match above criteria for example sometimes it does not contain numbers at all....
function randomString(length, chars) {
var mask = '';
if (chars.indexOf('a') > -1) mask += 'abcdefghijklmnopqrstuvwxyz';
if (chars.indexOf('A') > -1) mask += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
if (chars.indexOf('#') > -1) mask += '0123456789';
var result = '';
for (var i = length; i > 0; --i) result += mask[Math.round(Math.random() * (mask.length - 1))];
return result;
}
document.write(randomString(12, 'aA#'));
Is there any better approach to do it?