2

ユーザーパスワードを検証するための正規表現が含まれています:

  • 少なくとも 8 文字の英数字
  • 1大文字
  • 小文字1文字
  • 1桁

特殊文字使用可!@#$%*.~

次の正規表現を使用しています。

(?=(.*\w){8,})(?=(.*[A-Z]){1,})(?=(.*[a-z]){1,})(?=(.*[0-9]){1,})(?=(.*[!@#$%*.~]))

ただし、これにより、ユーザーが <、>、& などの他の特殊文字を入力できなくなるわけではありません。

許可されている特殊文字の数を制限するにはどうすればよいですか?

4

2 に答える 2

3

すべてを検証する単一の正規表現は、最終的にはライン ノイズのように見えます。

代わりに私は提案します:

  • 単純な文字列関数を使用して長さをテストする
  • 正規表現を使用して文字の包含と有効性をテストする
于 2012-10-02T18:00:47.180 に答える
1
^(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z])[a-zA-Z0-9!@#$%*.~]{8,}$

ちなみに、アンカー (^$) は重要です。

于 2012-10-02T18:08:52.217 に答える