1

パスワード用に作成された正規表現があります。

~^[a-z0-9!@#\$%\^&\*\(\)]{8,16}$~i

英数字の文字列および8〜16文字の記号と一致することになっています。ここで、使いやすさのためにエラーメッセージを分割する必要があるため、最小長と最大長の要件を削除する必要があります。{8,16}の部分を削除しようとしましたが、それが壊れています。どうすればいいですか?よろしくお願いします。

4

1 に答える 1

2

長すぎる文字列や短すぎる文字列を個別にチェックしていると思いますが、この正規表現は無効な文字がないことを確認しているだけです。これはそれを行う必要があります:

~^[a-z0-9!@#$%^&*()]+$~i

+1 つ以上を意味し、ゼロ*以上を意味します。おそらく、どちらを使用してもかまいません。

不要なバックスラッシュもいくつか取り除きました。これらの文字はいずれも、文字クラス (角括弧内) で特別な意味を持ちません。

于 2011-04-27T03:17:05.900 に答える