我需要在字符串中找到一个单词,该单词开始的机智是BK
或WL
,后跟2个数字。如果数字小于或等于50,我想将整个单词的颜色更改为蓝色,否则更改为红色。将颜色应用于字符串中的特定单词
例如,如果我有:
32FML EKKF BK30
我需要返回:
32FML EKKF <span class="blue">BK30</span>
我需要在字符串中找到一个单词,该单词开始的机智是BK
或WL
,后跟2个数字。如果数字小于或等于50,我想将整个单词的颜色更改为蓝色,否则更改为红色。将颜色应用于字符串中的特定单词
例如,如果我有:
32FML EKKF BK30
我需要返回:
32FML EKKF <span class="blue">BK30</span>
试试这个/((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
}
嗯,我认为我的意见是正确的答案,以便...您可以使用regular expression为和它的将字符串的匹配部分传递给替换模式的有用可能性。类似这样的:
var str = "32FML EKKF BK30";
var highlighted = str.replace(/(BK30)/, '<span class=""blue">$1</span>');
什么MysterX说是真实的,我也有你的正则表达式:
"32FML EKKF BK30".replace(/((BK|WL)+\d{2})/, '<span class=""blue">$1</span>')
如果数字是大于50小于或等于! ... –
' “32FML EKKF BK30” .replace(/(BK30)/,“<跨度类= “” 蓝色“> $ 1“)' – MysterX