Как я могу выделить слово жирным шрифтом перед двоеточием, только если двоеточие существует в строке с помощью регулярного выражения

#javascript #reactjs #regex #jsx

#язык JavaScript #реагирует на #регулярное выражение #jsx

Вопрос:

Эти четыре строки хранятся в 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 построчно и выделять жирным шрифтом каждое слово перед двоеточием, если в какой-то строке нет двоеточия, то оно не должно выделять жирным шрифтом всю строку, как показано ниже, оно выделяет жирным шрифтом только слово перед двоеточием, если в строке есть двоеточие

НФ: (Посмеиваясь)

ЭМ: И мы учили не очень долго. Мисс Фокс (ph) заняла мое место. Я встретила Итана, и мы

поженились в феврале (Посмеиваясь). Я преподавал с сентября по февраль—

НФ: Ух ты!

 lt;p key={k}gt;{ptr.split(/(?=:)/).map((x,i)=gt; i===0 ? lt;b key={i}gt;{x}lt;/bgt; : x) } lt;/pgt;)  

Ответ №1:

Вам нужно проверить, содержит ли массив, который вы обрабатываете внутри .map() , более одного элемента (чтобы проверить, действительно ли произошло разделение и строка была разделена по крайней мере на два фрагмента).

Добавьте третий аргумент в .map() и добавьте amp;amp; arr.lengthgt;1 проверку:

 lt;p key={k}gt;{ptr.split(/(?=:)/).map((x,i,arr)=gt; i===0 amp;amp; arr.lengthgt;1 ? lt;b key={i}gt;{x}lt;/bgt; : x) } lt;/pgt;)  

Комментарии:

1. Спасибо! Теперь с этим ответом все в порядке!