2017-06-01 60 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小於或等於! ... –

相關問題