0

まず第一に、私は正規表現に完全に慣れていないので、これはさらに最適化される可能性があります。そうであれば、どうすればよいか教えてください。とにかく、正規表現に関するいくつかの記事を読んだ後、パスワード照合のニーズに合わせて少し正規表現を書きました。

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

私がやろうとしているのは、大文字で始まる必要があり、小文字が含まれている必要があり、少なくとも1つの数字が含まれている必要があり、少なくとも1つの特殊文字が含まれている必要があり、長さが8〜20文字である必要がある. 上記は何とか機能しますが、特殊文字を強制しません(。どの文字にも一致するようですが、正の先読みでそれを使用する方法がわかりません)。最小の長さは8ではなく10のようです。私は何をしていますか?違う?

PS: http://gskinner.com/RegExr/を使用してこれをテストしています。

4

3 に答える 3

0

そのような要件があった場合の書き方は次のとおりです。絶対に不可能または実用的でない状況を除いて、複雑な正規表現を分割することを好みます。これは英語固有のものであるため、Unicode または POSIX 文字クラス (サポートされている場合) の方が適切であることに注意してください。

/^[A-Z]/ && /[a-z]/ && /[1-9]/ && /[whatever special]/ && ofCorrectLength(x)

つまり、一度にすべてのルールを取り入れようとすることは避けます。

于 2013-09-04T21:50:40.683 に答える