2017-06-01 61 views
1

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

例如,如果我有:

32FML EKKF BK30

我需要返回:

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

+1

' “32FML EKKF BK30” .replace(/(BK30)/,“<跨度类= “” 蓝色“> $ 1“)' – MysterX

回答

4

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

如果您验证小于50,适用于一些ternary operator在替换功能.parse的串号与使用parseFloat()

Demo regex and pattern explanation

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

嗯,我认为我的意见是正确的答案,以便...您可以使用regular expression为和它的将字符串的匹配部分传递给替换模式的有用可能性。类似这样的:

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小于或等于! ... –

相关问题