使用jQuery从字符串获取完整URL
我试图从一个陷阱中找到URL。我想检查字符串是否包含任何URL 为此,我编写了代码:使用jQuery从字符串获取完整URL,jquery,regex,url,Jquery,Regex,Url,我试图从一个陷阱中找到URL。我想检查字符串是否包含任何URL 为此,我编写了代码: function get_url_from_string(str) { var searchText = str, urls = searchText.match(/\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})\b/ig); for (var i = 0, il = urls.length; i < il; i++)
function get_url_from_string(str) {
var searchText = str,
urls = searchText.match(/\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})\b/ig);
for (var i = 0, il = urls.length; i < il; i++) {
var ur=urls[i];
}
return ur;
}
函数从字符串(str)获取url{
var searchText=str,
URL=searchText.match(/\b(http | https)?(:\/\/)?(\S*)\.(\w{2,4})\b/ig);
for(var i=0,il=url.length;i
但它只返回URL,没有任何参数。例如,如果我通过:
嗨,看看这个
它只给了我
我想得到完整的网址。
我对正则表达式一无所知。
请帮忙。
谢谢试试这个-
/\b(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?\s/
试试这个-
/\b(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?\s/
试试这个它对我很有效
var url_regex = /(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?/gi;
var text = "some text string here!!";
var urls_array = [];
while ((urls = url_regex.exec(text)) !== null) {
urls_array.push(urls[0]);
}
此代码用于我的项目中
试试这个它对我很有效
var url_regex = /(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?/gi;
var text = "some text string here!!";
var urls_array = [];
while ((urls = url_regex.exec(text)) !== null) {
urls_array.push(urls[0]);
}
此代码用于我的项目中
函数从字符串(str)获取url{
var searchText=str,
URL=searchText.match(/\b(http | https)?(:\/\/)?(\S*)\(\w{2,4})?(.*)\b/ig);
for(var i=0,il=url.length;i
点击这里
函数从字符串(str)获取url{
var searchText=str,
URL=searchText.match(/\b(http | https)?(:\/\/)?(\S*)\(\w{2,4})?(.*)\b/ig);
for(var i=0,il=url.length;i
点击这里
尝试它显示错误。这个\(\w{2,4}
表示匹配一个
然后是[a-zA-Z0-9}
的2-4个字符。所以你的表达式在.com
结束。在\w{2,4}
之后添加\S*
将允许它继续运行,直到它碰到空白。我自己完成了\b(http://)(\S*)\(\w{2,4})b.(\S*)
:)谢谢您的帮助。您还可以将(http | https)
简化为`(https?)\。(\w{2,4}表示匹配a
然后匹配[a-zA-Z0-9]
的2-4个字符。因此您的表达式以.com
结尾。在之后添加\S*{2,4}
将允许它继续运行,直到出现空白。我已经自己完成了\b(http | https)?(:\/\/)?(\S*)\。(\w{2,4})\b.(\S*)
:)谢谢您的帮助。您还可以将(http | https)?
简化为`(https?)?