JS - 如何在正则表达式中替换链接
JS - how to replace in regex for links
我有一个正则表达式,它从 http 到 []
中某些字符出现的那一刻替换了 link,我想向这些字符添加
- 即用出现的某些字符或硬 space:
替换字符串
"https://test.pl'".replace(/https?:\/\/[^ "'><]+/g," ")
对于 []
中提到的字符工作正常,我不知道如何在此处添加  
;
你可以使用
.replace(/https?:\/\/.*?(?: |[ '"><]|$)/g," ")
参见regex demo。
详情:
https?:\/\/
- http://
或 https://
.*?
- 除换行字符外的任何零个或多个字符尽可能少
(?: |[ '"><]|$)
- 以下之一:
-
字符序列
|
- 或
[ "'><]
- 一个 space、"
、'
、>
或 <
char
|
- 或
$
- 字符串结尾。
JavaScript 演示:
const texts = ["https://test.pl test","https://test.pl'test"];
const re = /https?:\/\/.*?(?: |[ '"><]|$)/g;
for (const s of texts) {
console.log(s, '=>', s.replace(re, " "));
}
我有一个正则表达式,它从 http 到 []
中某些字符出现的那一刻替换了 link,我想向这些字符添加
- 即用出现的某些字符或硬 space:
"https://test.pl'".replace(/https?:\/\/[^ "'><]+/g," ")
对于 []
中提到的字符工作正常,我不知道如何在此处添加  
;
你可以使用
.replace(/https?:\/\/.*?(?: |[ '"><]|$)/g," ")
参见regex demo。
详情:
https?:\/\/
-http://
或https://
.*?
- 除换行字符外的任何零个或多个字符尽可能少(?: |[ '"><]|$)
- 以下之一:
-
字符序列|
- 或[ "'><]
- 一个 space、"
、'
、>
或<
char|
- 或$
- 字符串结尾。
JavaScript 演示:
const texts = ["https://test.pl test","https://test.pl'test"];
const re = /https?:\/\/.*?(?: |[ '"><]|$)/g;
for (const s of texts) {
console.log(s, '=>', s.replace(re, " "));
}