匹配一个网址URL的js正则表达式怎么写啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了匹配一个网址URL的js正则表达式怎么写啊?相关的知识,希望对你有一定的参考价值。
一个链接地址,比如说一个视频连接:http://example.com/example/xxx.rmvb
参考技术A function IsURL(str_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);
//re.test()
if (re.test(str_url))
return (true);
else
return (false);
本回答被提问者和网友采纳 参考技术B 好学学
Java:怎样使用正则从url中匹配出ip和端口呢
例如:
http://127.0.0.1:8080
使用正则匹配出127.0.0.1和8080,而不使用split()
匹配最后的8080似乎可以使用(?=pattern),但匹配127.0.0.1呢?或者说能否一次都匹配出来了?
Pattern p=Pattern.compile(regex);
String t="://127.0.0.1:8080";
Matcher m=p.matcher(t);
while(m.find())
System.out.println(m.group(1));
System.out.println(m.group(2));
追问
您好:
为什么可以写作"//(.*?):(.*)"而不用写作"http://(.*?):(.*)"呢?希望您再和我说下
那个前面的部分随意啦,考虑到可能是https之类的
追问您好前辈,这种写法我没见过,还可以从中间开始匹配吗?呜呜呜
追答(.*?)是非贪婪的任意字符匹配
本回答被提问者采纳 参考技术B String reg = "((\\d+\\.)3\\d+)\\:(\\d+)";String url = "";
String ip = url.replaceAll(reg, "$1");
String port = url.replaceAll(reg, "$3");
以上是关于匹配一个网址URL的js正则表达式怎么写啊?的主要内容,如果未能解决你的问题,请参考以下文章