【问题标题】:Nodejs - Replacing all double word tags with a single word tagNodejs - 用单字标签替换所有双字标签
【发布时间】:2019-01-07 09:41:09
【问题描述】:

我有一个字符串:

Const a = '<person>mark boby</person> bla bla 
<food>milk</food>'

我需要把它变成:

'<person>mark</person> <person>boby</person> bla bla 
<food>milk</food>'

我该怎么做?

【问题讨论】:

  • 到目前为止你做了什么?
  • 嗨!请使用tour(您将获得徽章!)并通读help center,尤其是How do I ask a good question? 您最好的选择是进行研究,search 以获取有关 SO 的相关主题,然后试一试. 如果您在进行更多研究和搜索后遇到困难并且无法摆脱困境,请发布您的尝试minimal reproducible example,并具体说明您遇到的问题。人们会很乐意提供帮助。

标签: javascript node.js tags


【解决方案1】:

您可能需要考虑将String.prototype.replace 与自定义replacement function 一起使用,例如:

const x = '<person>mark boby</person> bla bla <food>milk</food>';
x.replace(/<(\w+)>(.*?\s.*?)<\/\w+>/, (match, tag, value) =>
   value.split(' ')
        .map(val => `<${tag}>${val}</${tag}>`)
        .join(' '));

【讨论】:

  • 太棒了!但这也适用于其他比赛,以 开头并以 结尾
  • 好吧,对于给定的源字符串 (&lt;person&gt;mark boby&lt;/person&gt; bla bla &lt;food&gt;milk&lt;/food&gt;),它似乎按预期工作(即结果是 &lt;person&gt;mark&lt;/person&gt; &lt;person&gt;boby&lt;/person&gt; bla bla &lt;food&gt;milk&lt;/food&gt;)是否有不同的源字符串?
最近更新 更多