基本方法
function checkUrl(string) {
let givenURL
try {
givenURL = new URL(string)
} catch (error) {
console.log('error is', error)
return false
}
return true
}
此种方法可能会漏掉一些不合规但是有效的 url, 譬如:youtube://abcd
, a://1.2.3.4@1.2.3.4
再确认协议
function checkHttpUrl(string) {
let givenURL
try {
givenURL = new URL(string)
} catch (error) {
console.log('error is', error)
return false
}
return givenURL.protocol === 'http:' || givenURL.protocol === 'https:'
}
使用正则表达式
function isValidURL(string) {
var res = string.match(
/(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/gi
)
return res !== null
}