我使用此函数来检测字符串是否为URL:
function ValidUrl(str) {
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
if (!pattern.test(str)) {
alert(str + " is not a valid URL.");
return false;
} else {
alert(str + " is a valid URL.");
return true;
}
}
但是,我需要查看字符串是否为URI,file://
,chrome-extension://
& ftp://
包括在内。
我该怎么做呢?使用RegExp完成新手...
答案 0 :(得分:1)
使用以下命令更改串联中的第一个字符串:
^((https?|file|ftp|chrome-extension):\/\/)?