1

ちょっと、次の行で非常に説明のつかない REG_BADRPT エラーが発生しています。

if(ereg('(?=^.{8,20}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$', $_POST['password']))

誰が問題が何であるかを見ることができますか?

JavaScriptで同じ正規表現を使用しましたが、問題なく動作するため、ここで何が問題なのかわかりません。

ここで達成しようとしているのは、以下を含む文字列を検証する正規表現を設定することです。

  • 少なくとも 1 つの小文字
  • 少なくとも1つの大文字
  • 少なくとも 1 つの数字または記号
  • 8~20文字の長さである必要があります
4

2 に答える 2

4

Ereg は php 5.3 で非推奨になりました。使用してみてpreg_match('/(?=^.{8,20}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/', $string)、それでもエラーが発生するかどうかを確認してください。

于 2012-07-29T01:42:12.147 に答える
0

さて、私はこれで正規表現を変更することになりましたが、正常に動作します:

if(preg_match("#.*^(?=.{8,20})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$#", $_POST['password']))

以前の問題が何であったかはまだわかりません

于 2012-07-31T17:13:48.543 に答える