Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 修改此URL验证正则表达式以接受.com部分之后的内容_Php_Regex - Fatal编程技术网

Php 修改此URL验证正则表达式以接受.com部分之后的内容

Php 修改此URL验证正则表达式以接受.com部分之后的内容,php,regex,Php,Regex,多年来,我使用这个正则表达式来验证URL,它完成了“ok”的工作。问题是,在.com部分之后,它不会进行验证。它只会验证http://www.domain.com。再多点,它就会抛出一个错误 function theUrl($rUrl) { if (preg_match('/^((http|https):\/{2})([w]{3})([\.]{1})([a-zA-Z0-9-]+)([\.]{1})((a[cdefgilmnoqrstuwxz]|aero|arpa)|(b[

多年来,我使用这个正则表达式来验证URL,它完成了“ok”的工作。问题是,在
.com
部分之后,它不会进行验证。它只会验证
http://www.domain.com
。再多点,它就会抛出一个错误

function theUrl($rUrl)
    {
        if (preg_match('/^((http|https):\/{2})([w]{3})([\.]{1})([a-zA-Z0-9-]+)([\.]{1})((a[cdefgilmnoqrstuwxz]|aero|arpa)|(b[abdefghijmnorstvwyz]|biz)|(c[acdfghiklmnorsuvxyz]|cat|co.in|com|coop)|d[ejkmoz]|(e[ceghrstu]|edu)|f[ijkmor]|(g[abdefghilmnpqrstuwy]|gov)|h[kmnrtu]|(i[delmnoqrst]|info|int)|(j[emop]|jobs)|k[eghimnprwyz]|l[abcikrstuvy]|(m[acdghklmnopqrstuvwxyz]|mil|mobi|museum)|(n[acefgilopruz]|name|net)|(om|org)|(p[aefghklmnrstwy]|pro)|qa|r[eouw]|s[abcdeghijklmnortvyz]|(t[cdfghjklmnoprtvwz]|travel)|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw])$/i', $rUrl))
        {
            return true;
        }       
    }

您能否帮助我了解
.com
之后的部分应该如何获得最佳效果?

我建议您使用一个本机PHP函数,而不是自定义正则表达式,例如:

  • 使用
    过滤器\u验证\u URL
    类型

什么是发动机?JavaScript?PHP?
cdefgilmnoqrstuwxz
可以在
[]中写成
c-gil-oq-uwxyz
这个东西是在php@Some1.Kill.The.DJ这是什么意思?@Norman你不需要指定一个范围内的每个字符。因此,你可以指定一个范围,而不是像
a-z
那样,覆盖
a
z
中的所有字符。这只适用于
[]