【问题标题】:Remove some urls from markdown with typescript [duplicate]使用 typescript 从 markdown 中删除一些 url [重复]
【发布时间】:2020-12-11 15:20:55
【问题描述】:

使用 Typescript 和 Node v8,我正在尝试处理降价文本并删除所有遵循特定模式的图像 URL:

  • 包含“禁止”字样的网址
  • 带有 IP 地址的 URL

我正在尝试使用这个正则表达式:

![([^]]+)]((.(fordbidden|(?:[0-9]{1,3}.){3}[0-9]{1,3} ).)\

This typescript code:

const markdownText =
            '\
            * ![Allowed image](http://accepteddomain/image.png)\
            * ![Forbidden domain image](http://fordbidden/image.png) \
            * ![Forbiden IP image](http://80.11.20.15/image.png) \
            ';

const forbiddenImages = /!\[([^\]]+)\]\((.*(fordbidden|(?:[0-9]{1,3}\.){3}[0-9]{1,3}).*)\)/gm;

function removeForbidden(markdown: string): string {
    return  markdown.replace(forbiddenImages,"![$1] ()");
}

console.log(removeForbidden(markdownText)

我只得到输入的第一行:

* ![Allowed image] ()           

提前致谢!

【问题讨论】:

    标签: node.js regex typescript markdown


    【解决方案1】:

    在我看来,问题来自字符串中使用的反斜杠。我已经尝试使用 ` 并且它正在工作:

    const markdownText =
                `
                * ![Allowed image](http://accepteddomain/image.png)
                * ![Forbidden domain image](http://fordbidden/image.png) 
                * ![Forbiden IP image](http://80.11.20.15/image.png)
                `;
    
    const forbiddenImages = /!\[([^\]]+)\]\((.*(fordbidden|(?:[0-9]{1,3}\.){3}[0-9]{1,3}).*)\)/gm;
    
    function removeForbidden(markdown: string) {
        return  markdown.replace(forbiddenImages,"![$1] ()");
    }
    
    console.log(removeForbidden(markdownText))

    `

    【讨论】:

    • 非常感谢!!
    猜你喜欢
    • 1970-01-01
    • 2013-04-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 2018-05-07
    相关资源
    最近更新 更多