gpt4 book ai didi

javascript - 将字符串替换为 JSX 标签

转载 作者:行者123 更新时间:2023-11-29 16:31:38 24 4
gpt4 key购买 nike

我有一个类似的字符串

let str = "You would get items\nwhich value about **$50**\nif you **pre-booked** it!"

我想替换 \n<br/>我用下面的代码实现了它。

str.split('\n').map((line)=>(<span>{line}<br/></span>)

我取得了什么

<span>You would get items<br/></span>
<span>which value about $50<br/></span>
<span>if you pre-booked it!</span>

现在,我想强调一些这样的话。

我的期望

<span>You would get items<br/></span>
<span>which value about <b>$50</b><span>
<span>if you <b>pre-booked</b> it!</span>

我想像下面这样使用。

const TextFormat = ({text}) => (
<React.Fragment>
{
text.split('\n').map((line, i) => (<span key={i}>{line}<br/></span>)
}
</React.Fragment>
)

最佳答案

在您的第一个 map 中,您可以按这些特定关键字拆分行。当您在 split 的正则表达式中包含捕获组时,捕获的子字符串将包含在结果数组中,因此您可以这样做:

<React.Fragment>
{
str.split('\n').map(line => (
<span>
{line.split(/\*\*(.+?)\*\*/).map((s, i) => i % 2 ? (<b>{s}</b>) : s)}
<br/>
</span>
))
}
</React.Fragment>

这看起来像 Markdown 。您还应该考虑使用 Markdown 插件,如 react-markdown使您的生活更轻松。

关于javascript - 将字符串替换为 JSX 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55386183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com