匹配一个网址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呢?或者说能否一次都匹配出来了?

参考技术A String regex="//(.*?):(.*)";
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正则表达式怎么写啊?的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式c语言匹配汉字“银行”,怎么写啊???直接写“银行”匹配不出来,麻烦高手指点下,很急的

如何用js匹配url的正则表达式

Python 使用正则表达式匹配URL网址

url匹配一个星和两个星

正则表达式匹配域名网址url

Java:怎样使用正则从url中匹配出ip和端口呢