我需要在字符串中找到一个单词,该单词以BK
或WL
开头,后跟2个数字。如果数字小于或等于50,我想将整个单词的颜色更改为蓝色,否则更改为红色。
例如如果我有:
32FML EKKF BK30
我需要回复:
32FML EKKF <span class="blue">BK30</span>
答案 0 :(得分:4)
试试这个/((BK|WL)(\d{2}))/g
正则表达式模式。
如果您的验证次数少于50
,请在替换函数中应用一些ternary operator
。将字符串分解为与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)
&#13;
.red{
color:red
}
&#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>')