1、第一种方法
使用split+join方法
1.1 String split()
将一个字符串切分为一个由字符串组成的数组
概要
string.split(delimiter,limit)
参数
delimiter:string切分处的字符串或正则表达式
limit:这个可选的整数指定已返回数组的最大长度。如果指定,则最多返回数量为这个数字的子串。如果没有指定,则将切分整个字符串,无论结果数组有多长
返回
一个由字符串组成的数组,通过在由delimiter界定的边界处切分string为子串创建。返回数组中的子串不包含delimiter本身
描述
split()方法创建返回一个数组,内容为至多limit
个给定的字符串string的子串。这些子串是这样创建的:从string的开头搜索到结尾,在所有匹配delimiter
的文本的前方及后方断开。分割文本不包含在返回的子串中。
注意:
如果分隔符(delimiter
)匹配给字符串的开头内容,则返回数组的第一个元素将是空字符串—出现在分隔符之前的文本。类似地,如果分隔符匹配该字符串的末尾,则返回数组的最后一个元素(假设与limit
不冲突)将是空字符串
如果没有指定delimiter
,则字符串string将不会切分,返回的数组将只包含一个未切分的字符串元素。如果delimiter
为空字符串或是一个匹配空字符串的正则表达式,则字符串string将在每个字符之间断开,返回的数组将与string拥有一样的长度,当然,这是在假设没有指定更小的limit
的情况下。(注意只是一个特例,因为第一个字符之前和最后一个字符之后的空字符不匹配)
示例
"1:2:3:4:5".split(":")//返回["1","2","3","4","5"]
"|a|b|c|".split("|")//返回["","a","b","c",""]
1.2 Array.join()
将数组元素链接为字符串
概要
array.join()
array.join(separator)
参数
separator:在返回的字符串中,用来分隔数组的某个元素与下一个元素的可选字符或字符串。如果省略,默认是英文逗号(,)
返回值
一个字符串。将array的每一个元素转化为字符串,然后用separator
字符串分隔开,最后链接为返回的字符串
描述
join()
将数组的每一个元素转换为字符串,并通过在中间插入指定的separator
字符串将它们链接起来,最后返回链接好的字符串
示例
a=new Array(1,2,3,"testing");
s=a.join("+");//s是字符串"1+2+3+testing"
代码
/**
* @param {string} s
* @return {string}
*/
var replaceSpace = function(s) {
if(typeof s==='string'&&s.length>=0&&s.length<=10000){
return s.split(' ').join('%20')
}
};
2、第二种方法
使用replace()
String.replace()
替换匹配给定正则表达式的(一个或多个)子串
概要
string.replace(regexp,replacement)
参数
regexp:
指定了要替换的模式的RegExp对象。如果这个参数是一个字符串,它将用作一个要搜索的直接量文本模式;它将不会先转化为RegExp对象`
replacement:
一个内容为替换文本的字符串,或者一个函数,用于在调用时生成对应的替换文本
返回
一个新的字符串,其中匹配regexp的第一个或所有的地方已替换为replacement
描述
replace()在字符串string上执行查找与替换的操作。它在string中搜索一个或多个匹配regexp的子串并使用replacement替换。如果regexp指定全局属性“g”,则replace()将替换所有匹配的子串
。在其他情况下,它只替换第一个匹配的子串
示例
s = "We are happy."
s.replace(/\s/g,'%20')//=>"We%20are%20happy."
代码
var replaceSpace = function(s) {
return s.replace(/\s/g,'%20')
};