我正在尝试用空格替换字符串中的所有“ WUB”。问题是,如果我连续有2个“ WUB”,它将返回2个空格。如果我有“ WUBWUB”,怎么只返回1个空格?
function songDecoder(song) {
var replacedLyrics = song.replace(/#|WUB/g,' ');
return replacedLyrics;
}
答案 0 :(得分:3)
尝试使用此正则表达式/(WUB)+/g
,它将匹配括号中的1个或多个元素
function songDecoder(song)
{
var replacedLyrics = song.replace(/(WUB)+/g,' ');
return (replacedLyrics);
}
console.log(songDecoder("hello world !"));
console.log(songDecoder("WUB"));
console.log(songDecoder("helloWUBWUBworldWUB!"));
答案 1 :(得分:0)
/#|WUB/g
应该是/#|(WUB)+/g
。您是否还想用一个空格替换多个“#”。然后,您可能需要/(#|WUB)+/g
括号将目标字符串分组在一起,然后加号寻求该组的一个或多个重复。
如果您不想在字符串的开头或结尾使用空格,则可以使用另一个正则表达式函数,但最直接的方法可能是使用.trim()函数。所以:
alert(
songDecoder('WUBYOUREWUBWELCOMEWUB')
)
function songDecoder(song) {
var replacedLyrics = song.replace(/(#|WUB)+/g,' ').trim();
return replacedLyrics;
}
答案 2 :(得分:0)
将代码更改为.replace(/#|(WUB)+/g, " ");
。
这会在用空格替换之前连续搜索“ WUB”