Применить цвет к определенному слову в строке

1

Мне нужно найти слово в строке, которая начинается с BK или WL, за которой следуют 2 числа. Если числа меньше или равны 50, я хочу изменить цвет всего слова на синий, иначе на красный.

Например, если у меня есть:

32FML EKKF BK30

Мне нужно вернуться:

32FML EKKF <span class="blue">BK30</span>

Теги:
string

3 ответа

4
Лучший ответ

Попробуйте это /((BK|WL)(\d{2}))/g шаблон регулярного выражения.

Если вы проверяете менее 50, примените некоторый ternary operator взамен функции.parse строка для использования числа с parseFloat()

Объяснение регулярного выражения и шаблона

var str ='32FML EKKF BK30 BK66'
document.body.innerHTML=str.replace(/((BK|WL)(\d{2}))/g ,(a,b,c,d) => parseFloat(d)<50 ? '<span class="red">'+b+'</span>' : b)
.red{
color:red
}
0

Ну, я думаю, что мой комментарий - правильный ответ, поэтому... Для этого вы можете использовать регулярное выражение, и это может быть полезно для передачи согласованных частей строки в шаблон замены. Что-то вроде этого:

var str = "32FML EKKF BK30";

var highlighted = str.replace(/(BK30)/, '<span class=""blue">$1</span>');   
0

То, что сказал MysterX, верно, и у меня тоже есть регулярное выражение:

"32FML EKKF BK30".replace(/((BK|WL)+\d{2})/, '<span class=""blue">$1</span>')
  • 0
    если числа меньше или равны 50! ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню