在此挑战中,我必须用空格替换字符串中的每个"WUB"
。如果连续有多个"WUB"
,那么我必须将所有空格替换为一个空格。例如,输入"WUBAPPLEWUBWUBBANANAWUBWUBWUBCARROT"
将返回"APPLE BANANA CARROT"
。
我还必须消除字符串开头和结尾的开头和结尾空格。我想知道如何更改代码来满足这些要求,但我对JavaScript还是很陌生。谢谢。
function songDecoder(song){
var regex = /wub/gi;
song = song.toLowerCase().replace(regex, ' ')
return song.toUpperCase()
}
答案 0 :(得分:1)
您在正确的轨道上,您需要做的就是添加一个量词以连续匹配多个.card-subtitle.text-muted {
position: absolute;
right: 1.25em;
margin: 0;
top:2.25em;
background:blue;
color:white !important;
padding:2px;
border-radius:5px;
font-size:10px;
}
,并且您还可以避免匹配后先转换为小写,而不是转换为大写正在使用WUB
标志来解决不区分大小写
i
(?:wub)+
答案 1 :(得分:0)
由于您是新手,因此您需要了解使用正则表达式的符号:
g修饰符:全局。所有比赛(第一次比赛后不会返回)
i修饰符:不敏感。不区分大小写的匹配(忽略[a-zA-Z]的大小写)
在您的情况下,i
并不重要,因为您没有捕获[a-zA-Z]
。
对于像 !@#$?
这样的输入,如果没有g
修饰符,则正则表达式将返回第一个匹配项!
See here。
如果g
存在,它将返回整数或它可以匹配的任何东西。 See here
let var = "WUBAPPLEWUBWUBBANANAWUBWUBwubCARROT";
function songDecoder(song){
var regex = /(?:wub)+/gi;
song = song.replace(regex, ' ')
return song.trim()
}
alert(songDecoder(str));