为了账号安全,请及时绑定邮箱和手机立即绑定

将字符串替换为JSX标签

将字符串替换为JSX标签

料青山看我应如是 2021-03-30 17:14:53
我有一个像这样的琴弦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>)
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

在您的first内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插件,react-markdown以使您的生活变得更轻松。


查看完整回答
反对 回复 2021-04-08
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

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


const res = str.split('\n').map(line =>


  `<span>  ${line.replace(/\*\*(.*?).\*\*/,match => `<b>${match.substring(2, match.length - 2 )}</b>`)} <br/> </span>`

)


console.log(res)


查看完整回答
反对 回复 2021-04-08
  • 2 回答
  • 0 关注
  • 466 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号