3

私はこれについて頭を包むことができないようで、ここで助けを求めると思いました!

基本的に私はパスワード フィールドを検証しており、要件は次のとおり
です 。

これは私がこれまでに持っているものですが、微調整が必​​要だと思います:
/[az]{3}[0-9][0-9]/i

4

2 に答える 2

2

あなたが説明している正規表現は次のように書くことができます:

/(?=.*?[a-z]{3})(?=.*?\d.*?\d)/

最初の先読みは、任意の位置で連続する 3 文字を検索します。2 番目の先読みでは、任意の位置にある数字が検索され、さらにその先の数字が続きます。

于 2012-11-30T23:31:53.507 に答える
1

これは、おそらく 2 つの別々の正規表現で行う必要があります。1 つは連続する 3 文字をテストするもので、もう 1 つは少なくとも 2 桁の数字をテストするものです。

/[a-z]{3}/i
/\d.*d/

両方の条件が満たされていることを確認してください。先読みを使用してこれを 1 つの正規表現に結合することもできますが、2 つの正規表現の方がより明確なコードであり、より優れたソリューションであると思います。

ただし、この問題について意見を述べるとしたら、これを制御できない場合 (クライアントが指定した場合) を除き、このようなパスワード制限を課さないことを強くお勧めします。実際には、パスワードシステムの安全性が大幅に低下しますが、安全性が向上するわけではありません. 理由についてのいくつかの読書:

http://jimpravetz.com/blog/2011/06/cheap-gpus-are-rendering-strong-passwords-use/

http://jimpravetz.com/blog/2012/02/stupid-password-rules/

于 2012-11-30T23:30:32.593 に答える