在JavaScript中,你可以使用正则表达式(RegExp)来校验HTTP和HTTPS地址。
![图片[1]_用JS校验HTTP和HTTPS地址的方法_知途无界](https://zhituwujie.com/wp-content/uploads/2024/04/d2b5ca33bd20240422112325.png)
以下是一个简单的示例,它定义了一个函数,该函数接受一个字符串作为参数,并检查该字符串是否是一个有效的HTTP或HTTPS URL:
function isValidURL(url) {var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name'((\\d{1,3}.){3}\\d{1,3}))'+ // OR ip (v4) address'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path'(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string'(\\#[-a-z\\d_]*)?$','i'); // fragment locatorreturn !!pattern.test(url);}// 测试console.log(isValidURL("http://www.example.com")); // trueconsole.log(isValidURL("https://www.example.com")); // trueconsole.log(isValidURL("ftp://www.example.com")); // falseconsole.log(isValidURL("www.example.com")); // falsefunction isValidURL(url) { var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name '((\\d{1,3}.){3}\\d{1,3}))'+ // OR ip (v4) address '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path '(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string '(\\#[-a-z\\d_]*)?$','i'); // fragment locator return !!pattern.test(url); } // 测试 console.log(isValidURL("http://www.example.com")); // true console.log(isValidURL("https://www.example.com")); // true console.log(isValidURL("ftp://www.example.com")); // false console.log(isValidURL("www.example.com")); // falsefunction isValidURL(url) { var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name '((\\d{1,3}.){3}\\d{1,3}))'+ // OR ip (v4) address '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path '(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string '(\\#[-a-z\\d_]*)?$','i'); // fragment locator return !!pattern.test(url); } // 测试 console.log(isValidURL("http://www.example.com")); // true console.log(isValidURL("https://www.example.com")); // true console.log(isValidURL("ftp://www.example.com")); // false console.log(isValidURL("www.example.com")); // false
这个函数首先定义了一个正则表达式模式,该模式匹配HTTP和HTTPS URL的主要部分,包括协议(http或https)、域名或IP地址、端口(可选)、路径(可选)、查询字符串(可选)和片段标识符(可选)。然后,它使用RegExp.test()
方法来检查输入的URL字符串是否匹配该模式。如果匹配,test()
方法返回true
,否则返回false
。
需要注意的是,这个正则表达式并不是完全严格的URL验证器。例如,它不会检查域名是否真实存在,也不会检查IP地址是否有效。如果你需要更严格的验证,你可能需要使用专门的URL解析库,或者使用更复杂的正则表达式。
另外,由于URL的规范可能会随着时间的推移而发生变化,因此建议在实际使用中定期检查并更新你的验证规则,以确保它们能够正确处理所有有效的URL。
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END
暂无评论内容