JS验证URL函数需要使用正则表达式,下面我来详细讲解一下验证URL的函数和正则表达式。
JS验证URL函数
首先,我们需要定义一个函数来验证URL是否合法。输入参数为URL字符串,返回值为布尔型,表示验证是否通过。以下是一个JavaScript函数来验证一个URL是否合法。
function isUrl(url) {
/* 正则表达式 */
var re=/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/;
/* 执行验证 */
return re.test(url);
}
函数中传入一个url参数来验证,使用正则表达式进行验证,如果符合返回true,否则返回false。
正则表达式
接下来介绍正则表达式的写法,首先需要说明的是正则表达式的写法有许多版本,不同的语言有不同的规范和实现,所以本文所介绍的正则表达式主要是ECMAScript规范的。
一个URL的正则表达式应该包括协议、主机名、端口号、路径。下面是正则表达式的写法:
/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/
其中^
表示开头, (https|http|ftp|rtsp|mms)
表示协议,:
表示冒号,\/\/
表示双斜线。[^\s]+
是匹配除空白字符外的至少一位字符,即主机名和路径。
这个正则表达式匹配的URL示例:
- http://www.baidu.com/
- https://www.google.com/search?q=regex
- ftp://ftp.gnu.org/gnu/
- rtsp://192.168.0.1/test.mp4
这些都是合法的URL,如果URL不符合这个规则,则返回false。
下面是一个完整的JavaScript示例,可以查看testUrl函数验证结果:
function testUrl(url) {
/* 正则表达式 */
var re=/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/;
/* 执行验证 */
return re.test(url);
}
console.log(testUrl('http://www.baidu.com')); // true
console.log(testUrl('https://www.google.com/search?q=regex')); // true
console.log(testUrl('ftp://ftp.gnu.org/gnu/')); // true
console.log(testUrl('rtsp://192.168.0.1/test.mp4')); // true
console.log(testUrl('example.com')); // false
console.log(testUrl('http://example.com:80/foo/bar')); // true
以上示例说明了如何验证URL是否合法,以及正则表达式的写法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS验证URL函数 正则 - Python技术站