将颜色应用于字符串中的特定单词

时间:2017-06-01 13:56:13

标签: javascript string

我需要在字符串中找到一个单词,该单词以BKWL开头,后跟2个数字。如果数字小于或等于50,我想将整个单词的颜色更改为蓝色,否则更改为红色。

例如如果我有:

32FML EKKF BK30

我需要回复:

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

3 个答案:

答案 0 :(得分:4)

试试这个/((BK|WL)(\d{2}))/g正则表达式模式。

如果您的验证次数少于50,请在替换函数中应用一些ternary operator。将字符串分解为与parseFloat()一起使用的数字

Demo regex and pattern explanation

&#13;
&#13;
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)
&#13;
.red{
color:red
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

好吧,我认为我的评论是正确的答案所以...你可以使用regular expression,并且将匹配的字符串部分传递给替换模式是有用的。像这样:

var str = "32FML EKKF BK30";

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

答案 2 :(得分:0)

MysterX说的是真的,我也有正则表达式:

"32FML EKKF BK30".replace(/((BK|WL)+\d{2})/, '<span class=""blue">$1</span>')