2017-06-01 18 views
1

文字列内の単語を見つける必要があります。文字列はBKまたはWLの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を適用するには、MysterXがあると何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

と数の使用に文字列を.parse私はあなたの正規表現も持っています:

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

数字が50以下である場合に! ... –

関連する問題