求个文本替换的思路

发布于 2022-09-11 15:51:01 字数 207 浏览 7 评论 0

有如下文本

`回帖`的`最帅`

// 如何替换为

<i>回帖</i>的<i>最帅</i>

也就是:
单数的 ` 替换为 <i>
双数的 ` 替换为 </i>

用js该怎么替换呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

海未深 2022-09-18 15:51:01

我自己写的感觉不太好

while (str.includes('`')) {
  str = str.replace('`', ++i % 2 == 1 ? '<i>' : '</i>')
}
幽梦紫曦~ 2022-09-18 15:51:01
function replaceStr (str) {
  var i = -1
  return str.replace(/`/g, function(){
    i++
    return i % 2 ===  0 ? '<i>' : '</i>'
  })
}

replaceStr('`回帖`的`最帅`') // <i>回帖</i>的<i>最帅</i>
眼趣 2022-09-18 15:51:01

你要搞markdown吗,有现成的,当然解决方案还是给你给出来了,用一个正则表达式就行了,考虑了转义,不考虑嵌套

`((\\`)|[\s\S])*?`
檐上三寸雪 2022-09-18 15:51:01

一个简单正则就可以搞定的事情

'`回帖`的`最帅`'.replace(/(`)([^`]*)\1/g, '<i>$2</i>')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文