1

これは、MicrosoftのWebサイトから見つけた正規表現です

(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$ 

そしてそれValidates a strong password. It must be between 8 and 10 characters, contain at least one digit and one alphabetic character, and must not contain special characters.

しかし、ユーザーがパスワードに特殊文字を使用できるようにすることにしたので、この正規表現をどのように変更すればよいでしょうか? なぜ前に出すのかよくわかりません?!

4

1 に答える 1

3

(?!^[0-9]*$)否定先読みです。最初から最後まで数字しかない場合、このアサーションは失敗します。したがって、さまざまな可能性があります。

これらの条件を書き直して、少なくとも 1 つの文字を要求し、その文字だけを禁止しないようにします。

(?=.*\d)少なくとも1桁が必要です

(?=.*[a-zA-Z])少なくとも1文字必要です

正規表現は次のようになります。

^(?=.*[0-9])(?=.*[a-zA-Z]).{8,10}$

は、少なくとも 1 つの数字と 1 つの文字が必要で、8 ~ 10 文字で構成されていることを意味します。には任意の文字を使用.できますが、改行は使用できません。

こちらのRegexrでご覧ください

于 2012-06-25T12:42:36.197 に答える