如何只用一个空格替换字符串字符?

时间:2018-10-31 15:01:57

标签: javascript regex

我正在尝试用空格替换字符串中的所有“ WUB”。问题是,如果我连续有2个“ WUB”,它将返回2个空格。如果我有“ WUBWUB”,怎么只返回1个空格?

function songDecoder(song) {
    var replacedLyrics = song.replace(/#|WUB/g,' ');
    return replacedLyrics;
}

3 个答案:

答案 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”