【发布时间】:2018-09-18 04:01:31
【问题描述】:
所以我正在使用城市词典 api,他们的术语可以使用 [term] 和 api 链接到其他人,你会得到我想在 markdown 中让它们实际超链接的框,即term 所以我尝试制作一个替换正则表达式要做到这一点,到目前为止我做得很好,除了当盒子有多个单词(如 [空格词])时它不起作用我一直试图找到一个好的正则表达式来匹配它,但它最终匹配整个字符串这是正则表达式我用的很好,但没有空格
"example [string] with [some] boxes".replace(/(\[(\S+)\])/ig, "$1(https://www.urbandictionary.com/define.php?term=$2)");
【问题讨论】:
-
试试
/(\[([^\][]+)\])/g,例如.replace(/\[([^\][]+)\]/g, "$&(https://www.urbandictionary.com/define.php?term=$1)")。顺便说一句,空格不应该替换为+吗?然后查看.replace(/\[([^\][]+)\]/g, (x,y) => x + "(https://www.urbandictionary.com/define.php?term=" + y.replace(/\s+/g, "+") + ")") -
哦,可以了,谢谢
-
用
([\w\s]+)替换你的(\S+)工作正常
标签: javascript regex