1

嘿,我在以下行中收到了一个非常描述性的 REG_BADRPT 错误:

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

任何人都可以看到问题是什么?

我在 javascript 中使用了相同的正则表达式,它工作正常,所以不确定问题出在哪里。

我在这里想要实现的是设置一个正则表达式来验证包含以下内容的字符串:

  • 至少一个小写字母
  • 至少有一个大写字母
  • 至少一个数字或符号
  • 长度应在 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 回答