Expressão regular para validação da força da senha
Eu escrevi uma expressão regular que poderia ser usada para validação de força de senha:
^(?:([A-Z])*([a-z])*(\d)*(\W)*){8,12}$
A expressão consiste em quatro grupos:
Zero ou mais caracteres maiúsculosZero ou mais caracteres minúsculosZero ou mais dígitos decimaisZero ou mais caracteres não-palavra (!, £, $,%, etc.)A maneira que eu quero que funcione é determinar quantos dos grupos foram combinados para determinar a força da senha. Assim, por exemplo, se apenas 1 grupo for correspondido, seria fraco. Se todos os quatro grupos fossem combinados, seria forte.
Eu testei a expressão usandoRubular (um editor de expressões regulares Ruby).
Aqui eu posso ver visualmente, quantos grupos são correspondidos, mas eu quero fazer isso em JavaScript. Eu escrevi um script que retorna o número de grupos correspondentes, mas os resultados não foram os mesmos que eu posso ver no Rubular.
Como posso conseguir isso em JavaScript? e é minha expressão regular até a tarefa?