Yii2验证字段不包含xxxx

时间:2017-03-14 23:23:27

标签: php yii2

我需要验证字段以确认它不包含URL。是否可以在模型中设置规则,如[['field'],'!url']?或任何其他方法

由于

2 个答案:

答案 0 :(得分:1)

您可以使用此http://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html#match

的匹配规则

您可以创建一个正则表达式来定义所有允许的字符,例如:

['field', 'match', 'pattern' => '/^[a-zA-Z0-9_-]+$/']

答案 1 :(得分:0)

这应该可以解决问题

 ['field', 'match', 'pattern' => '/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)/i', 'not'=>true]

正则表达式会匹配像

这样的网址
  • www.google.com
  • http://www.google.com
  • 的mailto:somebody@google.com
  • somebody@google.com
  • www.url-with-querystring.com/?url=has-querystring

Regex example