8

题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

题目说的不太严谨:

1.能不能允许连续出现多个空格?

2.若有可能连续多个空格,用多个还是单个20%进行替换?

分三种情况解答

1.不会出现连续多个空格:

直接用空格将字符串切割成数组,在用20%进行连接。

function replaceSpace(str)
{
    return str.split(' ').join('%20');
}

2.允许出现多个空格,每个空格均用一个20%替换:

用正则表达式找到所有空格依次替换

function replaceSpace(str)
{
    return str.replace(/\s/g,'%20');
}

-----2019.1.8----- add

这里使用上面的split方法也是可以的,例如

'a   b'.split(' ') 

["a", "", "", "b"]

join

a%20%20%20b

-----2019.1.8----- add

3.允许出现多个空格,多个空格用一个20%替换:
用正则表达式找到连续空格进行替换

function replaceSpace(str)
{
    return str.replace(/\s+/g,'%20');
}

ConardLi
10.1k 声望7.7k 粉丝

Reading makes a full man, conference a ready man, and writing an exact man.