あなたは、すべての非としてのシンボルを定義するためにトーマスのソリューション@従うことができます単語の文字は\W
ですが、これには空白が含まれていることに注意してください。ユーザーがパスワードに改行文字を持っていると、それらはほとんど確実にロックアウトされます。
パスワードについては、許可する文字を正確に説明する作業が必要です。またはピリオド.
を使用する場合は、正規表現の文字クラスに@anubhavaを追加してください。
"^(?=.*[A-Za-z])(?=.*\d)(?=.*[[email protected]$!%*#?&])[A-Za-z\[email protected]$!%*#?&]{8,}$"
// ^ ^
// \__add them here __/_________
// | | | |
"^(?=.*[A-Za-z])(?=.*\d)(?=.*[[email protected]$!%*#?&~\.])[A-Za-z\[email protected]$!%*#?&~\.]{8,}$"
正規表現を責任を持って使用するには、ボンネット内で何が起こっているのかを理解することが重要です。ここでは、あなたが使用している正規表現がどのように動作するかのウォークスルーがあります。
^
// From the beginning of your string
(?=.*[A-Za-z])
// Look ahead (?= )
// any number of chars .*
// Until you find an alpha character [A-Za-z]
(?=.*\d)
// Look ahead (?= )
// any number of chars .*
// Until you find a digit \d
(?=.*[[email protected]$!%*#?&])
// Look ahead (?= )
// any number of chars .*
// Until you find one of these chars [[email protected]$!%*#?&]
[A-Za-z\[email protected]$!%*#?&]{8,}
// Find any of these characters [A-Za-z\[email protected]$!%*#?&]
// 8 or more times {8,}
出典
2016-06-28 12:28:38
Cam
*「すべての特殊文字」*?それらを定義すれば、あなたの答えが得られます。 –
これはあなたが与えられた解決策を理解していないことを意味します。それらの特殊文字をキャラクタークラスに追加するだけです。 – anubhava
[$ @ $!%*#?&]にそれらを追加します。ドットを追加するときにスラッシュ(\。)を付けることを忘れないでください。 "〜"で - スラッシュが必要かどうか分かりませんが、試してみることもできます。 –