Mar*_*man 48
试试这个-
function isUrl(s) {
var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
return regexp.test(s);
}
Run Code Online (Sandbox Code Playgroud)
用法:if(isUrl(" http://www.page.com "))alert("is correct")else alert("not correct");
小智 11
function IsURL(url) {
var strRegex = "^((https|http|ftp|rtsp|mms)?://)"
+ "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp?user@
+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP???URL- 199.194.52.184
+ "|" // ??IP?DOMAIN????
+ "([0-9a-z_!~*'()-]+\.)*" // ??- www.
+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // ????
+ "[a-z]{2,6})" // first level domain- .com or .museum
+ "(:[0-9]{1,4})?" // ??- :80
+ "((/?)|" // a slash isn't required if there is no file name
+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
var re=new RegExp(strRegex);
return re.test(url);
}
Run Code Online (Sandbox Code Playgroud)

Debuggex演示(与'localhost'匹配的改进版本)
尝试这样的事情:
function isUrl(s) {
var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)? (\/|\/([\w#!:.?+=&%@!\-\/]))?/
return regexp.test(s);
}
Run Code Online (Sandbox Code Playgroud)
未来使用URL 构造函数和基本的 try catch 语句,大多数现代浏览器都支持它。显然没有IE支持......
const isUrl = (str) => {
try {
new URL(str);
return true;
} catch () {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
如果 URL 有效,它将被构造函数解析并返回 true。
如果字符串不是有效的 URL,构造函数将抛出一个语法错误,该错误将被捕获并返回 false。
| 归档时间: |
|
| 查看次数: |
32897 次 |
| 最近记录: |