【问题标题】:Regex validation user or admin正则表达式验证用户或管理员
【发布时间】:2014-05-22 10:46:54
【问题描述】:

使用正则表达式验证输入可以是用户或管理员,并且需要填写其中之一:

'user_type' => 'regex:/^\buser\b|\badmin\b$/|required'

【问题讨论】:

  • 你有什么问题?
  • 正则表达式不是验证。

标签: php regex validation laravel laravel-4


【解决方案1】:

假设语法是正确的,你的正则表达式有一个明确的错误:字符串开始锚^仅针对user进行测试,字符串结尾锚仅针对@987654324进行测试@。如果你有这些,你就不需要词边界锚。

试试这个:

'user_type' => array('regex:/^user$|^admin$/')

【讨论】:

  • @aelor:除非^$ 是完全不必要的,因为框架强制正则表达式匹配整个输入,否则原始正则表达式将匹配输入字符串"user name" 中的user,所以正则表达式确实不同。
  • 我得到这个正则表达式错误:preg_match(): No ending delimiter '/' found
  • @user3185936:嗯,正则表达式中有一个结束分隔符,所以在 Laravel 中声明正则表达式的语法可能与您使用的不同。我在网上找到的文档有点粗略,但似乎|required 部分是错误的。可以试试修改后的版本吗?
  • @user3185936:啊,我找到了问题所在。 | 运算符似乎使 Laravel 解析器感到困惑。详情:stackoverflow.com/questions/12875334/….
猜你喜欢
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-04
相关资源
最近更新 更多