Javascript 对节点中的全局变量多次使用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>")

我想在Node Js中更改字符串中的几个字符,由于无法使用.replaceAll(),因此我将.replace()与全局变量一起使用:

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没有任何特定关系,甚至没有任何关联。问题是什么?输出是正确的,即使它与您的期望不符。阅读。这是否回答了你的问题@阿尔塔雷斯试过了,但没有成功。已经发布了我找到的解决方案。