2016-06-30 6 views
1

オンライン登録フォームでJSを通じてユーザーが入力したパスワードを検証する正規表現が必要です。パスワードの基準は以下の通りである:パスワードの正規表現問題

  1. 8つの文字
  2. よりなければならない、少なくとも1個、1つの小文字を含むことがあり、1つの大文字
  3. は、中括弧を{含めることはできません}
  4. は、@、#、$、%、_などのような他の特殊文字を許可する必要があります。
  5. 数字、小文字、大文字の順番はランダムにすることができます例Ab1394 *またはbA1394

私は次の正規表現を使用しようとしましたが、 '?'中括弧{の前に、それは有効な入力として、それを可能にする、私は正規表現を使用する新しい、本当に慣れていないよので、マイナーな何かがそこにありますようになります。

^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[,#[email protected]%&\^\$\*\)\(\_\.\'\"\+\-]).{8,}$ 

誰かがこのための正規表現で私を助けることができますまたは鉱山ですべての問題を指すのおかげ

+0

なぜ中かっこは使用できませんか? – SWa

+0

私はレガシーシステムには限界があり、その文字をパスワードで許可することはできません。 – user1809790

答えて

3

簡単に、文字を禁止.{8,}[^{}]{8,}に変更するには:?

^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*[,#[email protected]%&\^\$\*\)\(\_\.\'\"\+\-])[^{}]{8,}$ 

またはクラス内の任意の権限の文字が含まれます

[a-zA-Z\d,#[email protected]%&\^\$\*\)\(\_\.\'\"\+\-]{8,}