【问题标题】:Parsing out image URLS and other URLS separately分别解析出图片 URL 和其他 URL
【发布时间】:2017-02-11 23:43:03
【问题描述】:

我有一个 javascript 函数,它将接受大量用户输入,并将所有图像 URL 替换为 HTML 图像,并将所有其他 URL 替换为 HTML 链接。唯一的问题是,我的解决方案很丑! :P

这是我目前的策略:

使用正则表达式首先将文本中的所有图片 URL 替换为位置标记,例如“#IMG[1]IMG#”,然后将图片的 URL 存储在一个数组中,以便以后替换。

然后,正常的 URL 被正则表达式替换。之后,图像占位符被替换为适当的图像标签。

这行得通,但它真的很乱。最好只替换 2 个正则表达式字符串,但是当普通 URL 被链接替换时,图像 URL 会被破坏。

非常感谢任何能更优雅地解决此问题的策略的想法。当然,如果我可以得到一个正则表达式,它可以在不获取图像 URL 的情况下找到所有 URL,那也可以解决我的问题。这是我当前用于查找 URL 的正则表达式:

/((https?:\/\/[^\s'"]+)|([^\s'"]*www[^\s'"]+\.[^\s'"]{2,})|([^\s'"]+\.(com|net|org|jp|gov)[^\s'"]*))/g

【问题讨论】:

  • 文本是 HTML 还是只是纯文本图像 url?
  • 原始文本只是纯文本 - 不应包含任何 HTML。

标签: javascript regex string parsing


【解决方案1】:

你可以这样做:

((https?:\/\/[^\s'"]+)|([^\s'"]*www[^\s'"]+\.[^\s'"]{2,})|([^\s'"]+\.(com|net|org|jp|gov)[^\s'"]*))(?<!jpg)(?<!png)(?=\s|$|'|")

并为您在查找不是图片的 URL 时要跳过的每个图片添加其他图片扩展名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2013-02-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    相关资源
    最近更新 更多