我希望使用 javascript 或 mootools 检测文本中的最后一个网址。网址可以没有前缀/方案
我正在开发像Facebook这样的URL自动感觉。如果用户可以提供URL www.example.com或http://www.example.com,则应通过JavaScript检测其中任何一个。请参阅stackoverflow检测到的URL包含在没有URL方案的方案中,它无法检测到URL。就我而言,我需要两者。
以下是一些文字
'http://www.example.com www.example2.com'
现在我想 www.example2.com 如果我得到包含 http://www.example.com 和 www.example2.com的完整数组会更好
我搜索了很多但找不到解决方案。 最符合我要求的是Question about URL Validation with Regex和How do I extract a URL from plain text using jQuery?
非常感谢任何帮助。
答案 0 :(得分:1)
<强> REGEX 强>
/([^:\/?# ]+:)?(\/\/[^\/?# ]*)?[^?# ]+(\?[^# ]*)?(#\S*)?/gi
示例代码
var str = 'http://www.example.com www.example2.com scheme://username:password@domain:port/path?query_string#fragment_id';
var t = str.match(/([^:\/?# ]+:)?(\/\/[^\/?# ]*)?[^?# ]+(\?[^# ]*)?(#\S*)?/gi);
/*
t contains :
[
"http://www.example.com",
"www.example2.com",
"scheme://username:password@domain:port/path?query_string#fragment_id"
]
*/
<强>样本强>
的讨论强>
3aBadScheme://hostname
,则正则表达式会将其检测为URL。在此示例中,3aBadScheme
无效,因为方案必须以字母开头。
(...)
方案名称由一系列以字母开头的字符组成,后跟字母,数字,加号(“+”),句号(“。”)或连字符的任意组合( “ - ”)。
(...)
答案 1 :(得分:1)
考虑到你的输入字符串,我想你只想用空格作为分隔符将它拆分?
.split(' ')
?
答案 2 :(得分:1)
通过梳理这两个链接中的信息: How do I extract a URL from plain text using jQuery? Detect URLs in text with JavaScript
我们可以得到这个: http://jsfiddle.net/qQwGA/1/
如果我理解你要做什么,这应该涵盖它。