While @kltr's answer is correct I do not recommend the use of such verbose regex (especially if you are not very familiar with them). Considering it's client code and not a function that will be executed in large volumes by a backend service you don't need to worry so much about performance so my suggestion would be to make a regex check for each of your required chars separately, this would allow the code to be more understandable and easier to edit in the future, in case you will want to add or remove certain required chars.
testPwd = function(val) {
var lowercase = /[a-z]/.test(val);
var uppercase = /[A-Z]/.test(val);
var numbers = /[0-9]/.test(val);
return lowercase === true && uppercase === true && numbers === true;
}
you can choose how verbose you want it to be (for example not assigning a var to each regex, etc) or adapt each regex to your linking but IMO i would go with this one. This would also allow you to provide a verbose error response (Example: "You are missing an Uppercase letter") with relatively little effort.