JavaScript: Проверка пароля на сложность

Задача: необходимо проверить пароль на сложность по критериям:

  •  есть маленькие буквы
  • есть большие буквы
  • есть специальные символы
  • пароль длиннее 7 символов

Ну в принципе подойдет чтото-вроде:

function PasswordValidTest(pass){
        var count = 0;    
        count += /[a-z]/.test(pass) ? 1 : 0; //есть маленькие буквы
        count += /[A-Z]/.test(pass) ? 1 : 0; //есть большие буквы
        count += /\d/.test(pass) ? 1 : 0;   
        count += /[^\w\d\s]/.test(pass) ? 1 : 0;
        (count>2 & !/[\s]+/.test(pass)) ? res=true:res=false;    
        if ((res==true)&&(pass.length<7)) res=false;
     return res;   
}

Ну и в нагрузку проверка Email:

function EmailValidTest(email){
 var re = /^[\w-\.]+@[\w-]+\.[a-z]{2,4}$/i;   
 return re.test(email);
};
function EmailValidRulesTest(email){
  validmails=['@mail.ru','@yandex.ru','@ya.ru','@list.ru','@inbox.ru','@gmail.com','@icloud.com','@bk.ru'];  
  re=false;  
  validmails.forEach(function(item, i, validmails){
    if (email.indexOf(item)!==-1) re=true;
  });   
  return re;
};