Wyrażenie regularne do sprawdzania siły hasła

Napisałem wyrażenie regularne, które może zostać użyte do sprawdzenia siły hasła:

^(?:([A-Z])*([a-z])*(\d)*(\W)*){8,12}$

Wyrażenie składa się z czterech grup:

Zero lub więcej wielkich literZero lub więcej małych literZero lub więcej cyfr dziesiętnychZero lub więcej znaków innych niż słowo (!, £, $,% itd.)

Chcę, aby działało, aby określić, ile grup zostało dopasowanych, aby określić siłę hasła. na przykład, jeśli tylko jedna grupa jest dopasowana, byłaby słaba. Gdyby wszystkie cztery grupy były dopasowane, byłoby mocne.

Przetestowałem wyrażenie używającRubular (edytor wyrażeń regularnych Ruby).

Tutaj mogę zobaczyć wizualnie, ile grup jest dopasowanych, ale chcę to zrobić w JavaScript. Napisałem skrypt, który zwraca liczbę dopasowanych grup, ale wyniki nie były takie same jak w Rubular.

Jak mogę to osiągnąć w JavaScript? i czy moje regularne wyrażenie jest zgodne z zadaniem?

questionAnswers(6)

yourAnswerToTheQuestion