用于验证具有子域的URL的正则表达式

时间:2012-04-12 06:31:23

标签: php regex url subdomain

preg_match('/^(http:\\/\/)?(.+)\.MYDOMAIN\.com(.*)/', $url, $match)

这是我的正则表达式,用于验证必须具有子域的URL,但如果有人使用www 而不是子域,它也得到验证。例如:

  • http://shoes.en.MYDOMAIN.com/这必须通过

  • http://www.MYDOMAIN.com/这必须失败

如果子域为www

,如何编辑我的正则表达式失败?

3 个答案:

答案 0 :(得分:2)

我认为你可以使用负面前瞻断言:(?!www\.)在协议检查后放置,检查启动或协议后是否有www.

/^(http:\\\/\/)?(?!www\.)(.+)\.MYDOMAIN\.com(.*)/.test("www.MYDOMAIN.com")

答案 1 :(得分:0)

尝试这一个:测试一个litle,似乎正在工作

preg_match('/^(http:\\/\/)?([^(www)]+)\.MYDOMAIN\.com(.*)/', $url, $match);

答案 2 :(得分:0)

如何使用当前解决方案首先验证域,然后使用第二个表达式检查www:

(\.www\.|http:\/\/www\.|^www\.)