仅当正则表达式行中存在冒号时,我如何才能将冒号前的单词加粗

How can i bold the word before colon only if colon exists in line by regular expression

这四行作为对象数组存储在ptr

["NF: (Chuckling)","EM: And we taught not very long. Ms. Fox (ph) took my place. I met Ethan and we","were married in February (Chuckling). I had taught from September to February--","NF: Wow!"]

我试图在 jsx 中逐行显示这些内容,并在冒号前加粗每个单词,如果在某行中没有冒号,那么它不应该加粗整行,如下所示,它只在冒号前加粗单词,如果行中有冒号

NF:(咯咯笑)

EM:而且我们教的时间不长。 Fox 女士 (ph) 代替了我。我遇到了 Ethan,我们

二月结婚(咯咯笑)。我从九月教到二月--

NF:哇!

<p key={k}>{ptr.split(/(?=:)/).map((x,i)=> i===0 ? <b key={i}>{x}</b> : x) } </p>)

您需要检查您在 .map() 中处理的数组是否包含一个以上的元素(以检查拆分是否确实发生并且字符串是否被拆分为至少两个块)。

将第三个参数添加到 .map() 并添加 && arr.length>1 检查:

<p key={k}>{ptr.split(/(?=:)/).map((x,i,arr)=> i===0 && arr.length>1 ? <b key={i}>{x}</b> : x) } </p>)