2016-03-10 85 views
-1

正則表達式我有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

如果你自己寫了正則表達式,我不會看到問題出在哪裏。但'+'意味着1次或更多次,你可能需要'*'0次或更多次。 – Rizier123

+0

由第二方無法輸入'google.pl'soi如果他使用http://他可以使用www。但沒有必要,但他不能寫沒有www的google.pl。 – qwerty

+0

爲什麼不使用yiI2 url驗證器? http://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html#url – soju

回答

2

您必須製作「www。」目前可選,因爲使用+,甚至可能會出現多次。使用?表示可選部件。

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

或使用*如果你想保持目前的行爲,但允許0次出現 – overflowed