JS - 如何在正则表达式中替换链接

JS - how to replace   in regex for links

我有一个正则表达式,它从 http 到 [] 中某些字符出现的那一刻替换了 link,我想向这些字符添加   - 即用出现的某些字符或硬 space:

替换字符串

"https://test.pl'".replace(/https?:\/\/[^ "'><]+/g," ")

对于 [] 中提到的字符工作正常,我不知道如何在此处添加 &nbsp

你可以使用

.replace(/https?:\/\/.*?(?:&nbsp;|[ '"><]|$)/g," ")

参见regex demo

详情:

  • https?:\/\/ - http://https://
  • .*? - 除换行字符外的任何零个或多个字符尽可能少
  • (?:&nbsp;|[ '"><]|$) - 以下之一:
    • &nbsp; - &nbsp; 字符序列
    • | - 或
    • [ "'><] - 一个 space、"'>< char
    • | - 或
    • $ - 字符串结尾。

JavaScript 演示:

const texts = ["https://test.pl&nbsp;test","https://test.pl'test"];
const re = /https?:\/\/.*?(?:&nbsp;|[ '"><]|$)/g;
for (const s of texts) {
  console.log(s, '=>', s.replace(re, " "));
}