如何操作regex从文本返回url数组
How to manipulate regex to return array of URLs from text?
我是Regex使用的新手,并且一直在寻找合适的Regex来从一段文本中检索url。
当前使用的正则表达式:
text.match(/(((ftp|https?):'/'/)(www'.)?|www'.)(['da-z-_'.]+)([a-z'.]{2,7})(['/'w'.-_'?'&]*)*'/?/g);
从一段文本中返回'www.mik'作为有效的URL,例如'…我的网页是www.mikealbert.com.. ',不适合我的目的。
,
到目前为止,以下正则表达式为我提供了匹配url的最佳结果('www.mik'不匹配,但'www.mikealbert.com'匹配)
/(https:[/][/]|http:[/][/]|www.)[a-zA-Z0-9'-'.]+'.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?'/?([a-zA-Z0-9'-'._'?',''/'''+&%'$#'=~])*$/.test("www.google.com");
但是,它只能用于匹配单个url。我该如何修改上面的正则表达式返回匹配的url数组?我还需要正则表达式来处理带有路径的url,例如www.facebook.com/abc123?apple=pie&blueberry=cake
谢谢你的帮助!
Remove $ sing from end of regex
var regex = /(https:[/][/]|http:[/][/]|www.)[a-zA-Z0-9'-'.]+'.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?'/?([a-zA-Z0-9'-'._'?',''/'''+&%'$#'=~])/g;
var input = "https://stackoverflow.com/ lorem ipsum dolor sit amet http://google.com dolor sit amet www.foo.com";
if(regex.test(input)) {
console.log(input.match(regex));
}
输出[ 'https://stackoverflow.com/',
'http://google.com',
'www.foo.com' ]
相关文章:
- 如何在文本搜索后返回long/lat
- .val()不返回输入文本
- HTML如何根据javascript函数的返回值限制文本输入
- JSTree's data.rslt.obj.text()返回一个文本数组,而不是所需节点的文本
- 检查文本区域是否为空总是返回false
- PHP/Ajax/jquery/JON-在Ajax Post之后将echo文本中的一部分作为变量返回
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 用Promises返回的数据替换出现的文本
- 在HTML表单中键入时返回文本
- 悬停在动画文本上后,文本淡入淡出不会返回
- 如何将答案返回到文本区域
- 如何添加 SVG 文本标记 从 JavaScript 函数返回的值
- 将JS变量作为文本返回以发送到Google Analytics
- 可以't在Chrome扩展上返回所选文本
- 如何返回jQuery对象中的文本节点
- jQuery文本返回NULL
- AJAX成功请求"消息文本"返回显示
- 如何操作regex从文本返回url数组
- jQM无文本返回按钮
- 通过组合动态和静态文本返回变量值