【问题标题】:Regular expression on website网站上的正则表达式
【发布时间】:2016-03-10 13:31:24
【问题描述】:

我在yii2的规则中有这个正则表达式:

 [['Url'],  'match', 'pattern' => '/^(http(s?):\/\/)?(www\.)+[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/'],

我能做些什么来改进这个“www”的网址。它可能是但不一定。第二方不能输入'google.pl' soi,如果他使用http://,他可以使用www.,但这不是必需的,但他不能在没有www的情况下写google.pl。

【问题讨论】:

  • 如果您自己编写正则表达式,我将看不出问题出在哪里。但+ 表示 1 次或多次,而您可能想要 * 0 次或多次。
  • 如果他使用 http:// 他可以使用 www,则第二方无法输入 'google.pl' soi。但没必要,但他不能写 google.pl 没有 www。
  • 为什么不使用 yiI2 url 验证器? yiiframework.com/doc-2.0/…

标签: php yii2 expression rules


【解决方案1】:

您必须输入“www”。在需要时是可选的,由于+ 的使用,它甚至可能多次出现。使用? 表示可选部分。

[['Url'],  'match', 'pattern' => '/^(http(s?):\/\/)?(www\.)?[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/'],

【讨论】:

  • 如果您想保持当前行为但允许 0 次出现,请使用 *
猜你喜欢
  • 2010-10-25
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 2012-01-29
  • 2021-07-11
  • 1970-01-01
相关资源
最近更新 更多