Регулярное выражение в угловых

0

Я создавал регулярное выражение в угловом для проверки пароля, который должен иметь

  1. Число
  2. Заглавная буква
  3. Строчная буква
  4. Только несколько символов, то есть! @# $%

положение любого символа или символа не ограничено.

Я пробовал это regex

/(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z])/

Но вышеупомянутое регулярное выражение принимает любой специальный символ, чтобы быть допустимым... Я просто хочу! @# $% Это, чтобы быть допустимым, недействительным

  • 1
    Вы пробовали что-нибудь?
  • 0
    /(?=.*[az])(?=.*[AZ])(?=.*[^a-zA-Z])/ Я пробовал это, но он принимает любой символ ... я хочу избежать эта вещь
Показать ещё 2 комментария

2 ответа

0

Я не уверен, что все вещи, которые вы хотите сделать, возможны в одном регулярном выражении. Но вы можете использовать простую функцию проверки, которая использует некоторые регулярные выражения:

function validate (pass) {
    if (
        /[A-Z]/.test(pass) && // uppercase letter is required
        /[a-z]/.test(pass) && // lowercase letter is required
        /[0-9]/.test(pass) && // number is required
        /[!@#$%]/.test(pass) && // predefined symbol is required
        !/[^A-Za-z0-9!@#$%]/.test(pass) // there is nothing unwanted 
    ) {
        return true;
    }
    return false;
}

Вот jsfiddle, чтобы показать, что он работает.

0

Попробуйте прослушиватель ng-change - что-то вроде следующего HTML:

<input ng-model="pw" ng-change="checkPwPolicy(pw)"> 
<div ng-hide="passwordPolicyValid">Your password is too weak!</div>

В сочетании с этим Javascript в рамках контроллера этой формы:

function checkPwPolicy(password) {
  var valid = true;

  // at least 1 number
  valid = valid && password.match(/[0-9]/).length > 0;
  // at least 1 uppercase
  valid = valid && password.match(/[A-Z]/).length > 0;

  // ...
  $scope.passwordPolicyValid = valid;
}

Некоторые вещи, которые вы могли бы сделать, чтобы улучшить эту реализацию, - это то, что вы можете чаще использовать огонь слушателя изменений, скрыть сообщение об ошибке, когда пароль не был затронут, а также добавить более подробные ошибки в сообщение о политике паролей.

  • 0
    функция checkPwPolicy должна быть определена в контроллере на $scope
  • 0
    Верно - я добавил новое редактирование, указывающее это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню