Javascript 对节点中的全局变量多次使用replace()
我想在Node Js中更改字符串中的几个字符,由于无法使用.replaceAll(),因此我将.replace()与全局变量一起使用:Javascript 对节点中的全局变量多次使用replace(),javascript,Javascript,我想在Node Js中更改字符串中的几个字符,由于无法使用.replaceAll(),因此我将.replace()与全局变量一起使用: function toHTML(content) { content = content.replace(/[i]/g, "<i>") .replace(/[/i]/g, "</i>") .replace(/[b]/g, "<b>")
function toHTML(content) {
content = content.replace(/[i]/g, "<i>")
.replace(/[/i]/g, "</i>")
.replace(/[b]/g, "<b>")
.replace(/[/b]/g, "</b>")
.replace(/[u]/g, "<u>")
.replace(/[/u]/g, "</u>")
.replace(/[p]/g, "<p>")
.replace(/[/p]/g, "</p>")
.replace(/[cite]/g, "<cite>")
.replace(/[/cite]/g, "</cite>")
.replace(/[code]/g, "<code>")
.replace(/[/code]/g, "</code>");
return content;
}
如果我尝试使用以下字符串:
This is an example
输出如下:
Th<<<<<<</code><</code></code></code></code>>it<</code></code></code></code>>>p>u>b><<</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>>>>>s <<<<<<</code><</code></code></code></code>>it<</code></code></code></code>>>p>u>b><<</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>>>>>s an <<</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>>>xam<<<</code><</code></code></code></code>>it<</code></code></code></code>>>p>>l<<</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>><</code><</code></code></code></code>>it<</code></code></code></code>>>>
这是一个xaml
我自己刚刚找到了一个解决方案,因为我无法使用正则表达式或建议的方法使其工作
function toHTML(content) {
let converted = content;
const changes = [
{from: "[i]", to: "<i>"},
{from: "[/i]", to: "</i>"},
{from: "[b]", to: "<b>"},
{from: "[/b]", to: "</b>"},
{from: "[u]", to: "</u>"},
{from: "[/u]", to: "</u>"},
{from: "[p]", to: "</p>"},
{from: "[/p]", to: "</p>"},
{from: "[cite]", to: "</cite>"},
{from: "[/cite]", to: "</cite>"},
{from: "[code]", to: "</code>"},
{from: "[/code]", to: "</code>"},
];
changes.map((item, index) => {
while(converted.indexOf(item.from) !== -1) {
converted = converted.replace(item.from, item.to);
}
})
return converted;
}
函数到HTML(内容){
让转换=内容;
常数变化=[
{从:“[i]”到:“},
{从:“[/i]”到:“},
{从:“[b]”到:“},
{从:“[/b]”到:“},
{从:“[u]”到:“},
{从:“[/u]”到:“},
{从:“[p]”到:“”},
{从:“[/p]”到:“”},
{从:“[引用]”,到:“},
{从:“[/cite]”到:“},
{从:“[code]”到:“
”},
{从:“[/code]”到:“”},
];
更改。映射((项目、索引)=>{
while(已转换.indexOf(item.from)!=-1){
已转换=已转换。替换(项。从,项。到);
}
})
转换收益;
}
或者,按照@epascarello的建议使用(修改):
string.replace(/\[(\/?(i | b | p | code | cite))\]/g,”)
这个问题是关于。它与Node.js没有任何特定关系,甚至没有任何关联。问题是什么?输出是正确的,即使它与您的期望不符。阅读。这是否回答了你的问题@阿尔塔雷斯试过了,但没有成功。已经发布了我找到的解决方案。