Использование регулярного выражения для проверки пароля - PullRequest
0 голосов
/ 08 декабря 2010

Я использую следующее регулярное выражение мой код Java.

^.*(?=.{6,20})(?=.*[a-z].*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$

Когда я пытаюсь использовать то же самое в xml как

^.\*(\?=.{6,20})(\?=.\*[a-z].\*[a-z])(\?=.\*[A-Z])(\?=.\*[0-9]).\*$ 

Это не работает.Это показывает исключение, как показано ниже.

java.lang.IllegalArgumentException: cvc-pattern-valid: значение 'narendra1A' не является действительным по отношению к фасету относительно шаблона '^. * (\? =. {6,20}) (\? =. * [Az]. * [Az]) (\? =. * [AZ]) (\? =. * [0-9]). * $ 'Для типа' #AnonType_passwordcreateUser '.

Может ли кто-нибудь помочь в этом отношении.

Спасибо,

Нарендра

Ответы [ 4 ]

3 голосов
/ 08 декабря 2010

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

Библиотека vt-password является превосходнойБиблиотека Java, которая реализует проверку качества паролей на основе правил.В дополнение к подсчету символов / классов символов, он выполняет такие вещи, как проверка по словарям, проверка ранее использованных паролей, проверка на повторяющиеся символы и т. Д.

(Если вы используете Spring, довольно просто настроитьобъекты правил паролей в файле разметки Spring XML. Это позволяет настраивать правила без изменения кода.)

0 голосов
/ 08 апреля 2019

Попробуйте это

^.\*(\?:.{6,20})(\?:.\*[a-z].\*[a-z])(\?:.\*[A-Z])(\?:.\*[0-9]).\*$ 
0 голосов
/ 08 декабря 2010

В вашем шаблоне используются символы, запрещенные в документе XML.Для простоты вставьте пароль в CDATA.

0 голосов
/ 08 декабря 2010

Шаблон регулярного выражения пароля

((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})

Описание

(           # Start of group
  (?=.*\d)      #   must contains one digit from 0-9
  (?=.*[a-z])   #   must contains one lowercase characters
  (?=.*[A-Z])   #   must contains one uppercase characters
  (?=.*[@#$%])  #   must contains one special symbols in the list "@#$%"
     .          #     match anything with previous condition checking
       {6,20}   #        length at least 6 characters and maximum of 20 
)           # End of group
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...