Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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
使用javascript和php验证URL_Php_Javascript - Fatal编程技术网

使用javascript和php验证URL

使用javascript和php验证URL,php,javascript,Php,Javascript,我只想验证以下两种格式的url 和 www.XYZ.com 我还需要Javascript和PHP中的验证脚本。 提前谢谢。雷格克斯就像冠军一样 你可以自己写一个,下面是一个简单的例子: (https?://)?.+$ 通过谷歌搜索,我发现了一些更为特殊的东西,在更严格的验证方面: ^(https?://)?(([0-9a-z_!'().&=$%-]: )?[0-9a-z_!'().&=$%-]@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z_!'

我只想验证以下两种格式的url 和 www.XYZ.com 我还需要Javascript和PHP中的验证脚本。 提前谢谢。

雷格克斯就像冠军一样

你可以自己写一个,下面是一个简单的例子:

(https?://)?.+$
通过谷歌搜索,我发现了一些更为特殊的东西,在更严格的验证方面:

^(https?://)?(([0-9a-z_!'().&=$%-]: )?[0-9a-z_!'().&=$%-]@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z_!'()-]\.)([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6})(:[0-9]{1,4})?((/?)|(/[0-9a-z_!*'().;?:@&=$,%#-])/?)$
资料来源: (显然,测试复制和粘贴的正则表达式,就像测试任何复制粘贴的代码一样)

如果您不知道如何在PHP中使用正则表达式,那么它非常简单:

$valid = preg_match($pattern, $urlOrStringToValidate);
其中$pattern=“/(https?:/)?.+/”或类似内容,在/和之间/

Javascript在字符串类型上有一个名为match的对象方法

var urlString = "http://www.XYZ.com";
var isValidURL = urlString.match(/(https?:\/\/)?.+/);

最好使用正则表达式来执行此操作。大概是这样的:

^((ht|f)tp(s?)\:\/\/|~/|/)?([\w]+:\w+@)?([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5}))(:[\d]{1,5})?((/?\w+/)+|/?)(\w+\.[\w]{3,4})?((\?\w+=\w+)?(&\w+=\w+)*)?
您可以在PHP中使用函数使用正则表达式,在JavaScript中使用
match()
函数使用正则表达式

例如(Javascript)


使用。

另一件我忘了提到的事情,正则表达式只会验证URL的良好格式。通过向url发送AJAX请求(Jquery:$.AJAX({url:urlToTest,error:function(){alert(“无效url”);}}),您实际上可以看到这些url是否有效;类似地,您可以使用curl或gethostbyname()测试。但是!我测试url的实际有效性的经验非常烦人。例如,服务器响应时间太长,导致ajax失败,或者主机名是ip地址……处理起来真是一件痛苦的事情。上面的条件将对下面两种条件都有效?www.xyz.com,上面的条件将对下面两种条件都有效?www.xyz.com,我相信是这样。我没有正确地测试表达式。你只需要在谷歌上搜索一个适合你需要的表达式,然后应用它。或者那样,或者编写一个完全适合你需要的表达式。
function validateUrl(url)
{
    var pattern = '^((ht|f)tp(s?)\:\/\/|~/|/)?([\w]+:\w+@)?([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5}))(:[\d]{1,5})?((/?\w+/)+|/?)(\w+\.[\w]{3,4})?((\?\w+=\w+)?(&\w+=\w+)*)?';

    if(url.match(pattern))
    {
        return true;
    }
    else
    {
        return false;
    }
}