Password regex test

by Patrick von Lieres

HTML

<div id="out" style="font-family: monospace"></div>

JavaScript

// Acceptence:
// min number of characters: 8
// must contain special characters: 1
// must contain lowercase letters: 1
// must contain uppercase letters: 1
// must contain numbers: 1
var regex = /^(?!.*[\s])(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w]).{8,}$/;

var fails = [
	'abcDE1$', // too short
	'abcDEF123', // no special chars
	'DEF123$&!', // no lowercase letters
	'abc123$&!', // no uppercase letters
	'abcDEF$&!', // no numbers
  'abc DEF 123 $&!' // including spaces
];

var pass = [
	'abcDE1$&', // meets all conditions
	'abcdefghijklmnopqrstuVWXYZ1234567890!"§$%&/()?#+_' // longer value
];

// run tests and print output
fails.concat(pass).forEach(function(value) {
	print(value + ' --> ' + (regex.test(value) ? 'pass' : 'fail'));
});

function print(line) {
	document.getElementById('out').innerHTML += '<br>' + line;
}