如何使用正则表达式检测任何类型的URL

时间:2014-07-09 06:49:37

标签: javascript jquery regex contenteditable

是否有任何regx来检测完整的网址

在我的代码中,我使用此regx urlRegex 来查找我的内容中可编辑的iframe文本中的任何网址

urlRegex = /http(s?):\/\/($|[^ ]+)/

当我输入 http:// 时会出现问题,这会被检测到,但这并没有检测到www.google.com

我必须检测网址

http://www.google.com
https://www.google.com
www.google.com
http://localhost:51932/default.aspx

我的代码是

var iframe = Iframe,
    textbox = iframe.contents().find("body")[0],
    urlRegex = /http(s?):\/\/($|[^ ]+)/;

在这个问题中Autolink URL in ContentEditable Iframe我正在尝试修复regx

请帮忙

由于

1 个答案:

答案 0 :(得分:1)

更新版本 - 经过测试

^((https?|s?ftp):\/\/)?(((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|((([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])))(:[1-9][0-9]+)?(\/)?([/?].+)?$

只有两个失败(现在:))

http://localhost:51932/default.aspx
https://192.168.0.25:5132/default.aspx
www.google.com
http://www.google.com
mailto:somebody@google.com                         // fail
somebody@google.com                                // fail 
www.url-with-querystring.com/?url=has-querystring
http://www.xxx.events
sftp://ftp.something.com
www.google.co.in
www.xxx.com