本文共 1083 字,大约阅读时间需要 3 分钟。
例如:
http://www.qq.com // 通过http://www.qq.com.cn // 不通过http://www.qq.com/a/b // 通过http://www.qq.com?a=1 // 通过http://www.123qq.com?a=1 // 不通过
解答:正则
function check(url){ if(/\/\/w+\.qq\.com[^.]*$/.test(url)){ return true; }else{ return false; }}check('http://www.qq.com')// truecheck('http://www.qq.com.cn')// falsecheck('http://www.qq.com/a/b')// truecheck('http://www.qq.com?a=1')// truecheck('http://www.123qq.com?a=1')// false
这个正则很简单,包含 .qq.com
就可以,但是有一种情况,如果域名不是包含 qq.com
而仅仅是参数后面包含了 qq.com
怎么办?例如 http://www.baidu.com?redirect=http://www.qq.com/a
check('http://www.baidu.com?redirect=http://www.qq.com/a')// true
如何排除这种情况?
function check(url){ if(/^https?:\/\/w+\.qq\.com[^.]*$/.test(url)){ return true; }else{ return false; }}check('http://www.qq.com')// truecheck('http://www.qq.com.cn')// falsecheck('http://www.qq.com/a/b')// truecheck('http://www.qq.com?a=1')// truecheck('http://www.123qq.com?a=1')// falsecheck('http://www.baidu.com?redirect=http://www.qq.com/a')// true
若有收获,就点个赞吧
本文首发自「三分钟学前端」,回复「交流」自动加入前端三分钟进阶群,每日一道编程算法面试题(含解答),助力你成为更优秀的前端开发!
转载地址:http://gcbsi.baihongyu.com/