2017-12-08 10 views
2

どの言語のパスワードとも一致するパターンを作成しようとしています。Regex - 国際パスワード一致式

整合要件がある: -

  • 1アッパーCHAR(最小)
  • 1下部CHAR(最小)
  • 1デジット(最小)
  • 1シンボル(MIN)
  • 8文字以上の長さ

以下のパターンからわかると思いますが、私は迷っています!!

/^(?=.*[\p{Ll}])(?=.*[\p{Lu}])(?=.*\p{Nd})(?=.*[@$!%*?&])[\p{Lu}\p{Ll}\p{Nd}[email protected]$!%*?&]{8,}$/u

テスト文字列

  1. 关键字157aA $ 89
  2. P455word123!

答えて

1

\p{Lu}は大文字のUnicode文字と一致し、\p{Ll}は小文字のUnicode文字と一致します。中国語の文字は大文字ではなく、\p{L}(それ以外の文字はすべて)と一致させることができます。かかる部分で

使用\p{L}

/^(?=.*\p{Ll})(?=.*\p{Lu})(?=.*\p{Nd})(?=.*[@$!%*?&])[\p{L}\p{Nd}@$!%*?&]{8,}$/u 
                 ^^^^^ 

this regex demoを参照してください。

パスワードには大文字と小文字が必要です。あなただけの中国の文字または小文字と大文字を必要とする場合、

ここ
/^(?:(?=.*\p{Han})|(?=.*\p{Ll})(?=.*\p{Lu}))(?=.*\p{Nd})(?=.*[@$!%*?&])[\p{L}\p{Nd}[email protected]!%*?&]{8,}$/u 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

(?:(?=.*\p{Han})|(?=.*\p{Ll})(?=.*\p{Lu}))は中国の文字(\p{Han})または小文字+大文字のいずれかが必要になります使用します。

関連する問題