JavaScript中String对象的方法介绍

1.1 charAt() 方法,返回字符串中指定位置的字符。

var question = "Do you like JavaScript?"; alert(question.charAt(5)); //"u"

字符串 "Do you like JavaScript?" 的长度为23,即位置从0到22。指定位置5处的字符是"u"。

1.2 charCodeAt() 方法,返回字符串中指定位置的字符编码。

var question = "Do you like JavaScript?"; alert(question.charCodeAt(5)); //"117"

位置5处的字符"u"的字符编码是"117"。

charAt() 和 charCodeAt() 都是针对单个字符进行操作的方法。

2.字符串操作方法

这个小节的字符串操作方法是关于创建新字符串的方法。这些方法包括 concat()、slice()、substring()、substr()。

concat() 是通过拼接的方式创建新的字符串,slice()、substring()、substr() 是通过提取的方式创建新的字符串。

这四种方法不会改变原始字符串。

2.1 concat() 方法,将一个或多个字符串拼接起来,返回新的字符串。不改变原始字符串。

concat() 方法可以接受一个或多个参数。

concat() 方法接受一个参数。

var love = "I love "; var result = love.concat("you"); alert(result); //"I love you" alert(love); //"I love "

love 调用了 concat() 方法,返回 "I love you",love 的值并没有改变。

concat() 方法接受多个参数。

var love = "I love "; var result = love.concat("you"," very"," much","!"); alert(result); //"I love you very much!" alert(love); //"I love "

不过,在实践中,通常用 + 号操作符将字符串拼接在一起。

2.2 slice()、substring()、substr() 方法,通过提取原始字符串的部分或全部来创建新的字符串,返回创建后的新字符串,不改变原始字符串。

slice()、substring()、substr() 方法可以接受一个或两个参数,这些参数为数字,可以是正值参数,也可以是负值参数。

2.2.1 参数为正值时

传入两个参数的情况

对于 slice() 、substring() ,第一个参数为提取的开始位置(包括开始位置的字符),第二个参数为提取的结束位置(不包括结束位置的字符)。

对于 substr(),第一个参数为提取的开始位置(包括开始位置的字符),第二个参数为提取的字符个数。

var hello = "I love JavaScript!"; alert(hello.slice(7,11)); //"Java" alert(hello.substring(7,11)); //"Java" alert(hello.substr(7,11)); //"JavaScript!"

字符串 "I love JavaScript!" 长度为18,即位置从0到17。第7位的字符是 "J",第11位的字符是 "S"。

slice()、substring() 提取的子字符串是从第7位开始(包括第7位的 "J")到第11位结束(不包括第11位的 "S"),于是用这两个方法提取的新字符串是 "Java"。而 substr() 则是从第7位 "J" 开始(包括第7位的 "J"),提取11个字符,最后提取的新字符串为 "JavaScript!"。

传入一个参数的情况

参数为正值,传入一个参数时,slice()、substring()、substr() 方法提取原理相同,即从参数的位置开始提取(包括开始位置的字符),一直提取到原始字符串的最后一个字符(包括最后一个字符)。

var hello = "I love JavaScript!"; alert(hello.slice(7)); //"JavaScript!" alert(hello.substring(7)); //"JavaScript!" alert(hello.substr(7)); //"JavaScript!"

传入了一个参数7,即从第7位开始(包括第7位的 "J"),一直提取到原始字符串的最后一位(包括最后一位的 "!")。于是,只有一个参数,且参数为正值时,slice()、substring()、substr() 方法返回的新字符串相同。

2.2.2 参数为负值时,不管是一个参数还是两个参数

slice() 方法会将传入的所有负值与字符串长度相加。

substring() 方法会将传入的所有负值都转化为0。

substr() 方法,若第一个参数是负值,则将负值与字符串长度相加;若第二个参数是负值,则将其转化为0。

var hello = "I love JavaScript!"; alert(hello.slice(-11)); //"JavaScript!" alert(hello.substring(-11)); //"I love JavaScript!" alert(hello.substr(-11)); //"JavaScript!" alert(hello.slice(-11,-9)); //"Ja" alert(hello.substring(-11,-9)); //""(空字符串) alert(hello.substr(-11,-9)); //""(空字符串)

当传入一个负值参数-1时,

slice() 将负值参数与字符串长度相加,前面提到过,字符串 "I love JavaScript!" 的长度为18,于是 slice(-11) 即相当于 slice(7),即从第7位开始提取,最后提取的子字符串为 "JavaScript!";

substring() 会将负值转化为0,substring(-11) 相当于 substring(0),即从第0位开始提取,最后提取的子字符串为 "I love JavaScript!";

substr() 将负值参数与字符串长度相加,substr(-11) 相当于 substr(7),即从第7位开始提取,最后提取的子字符串为 "JavaScript!"。

当传入参数-11,-9时,

slice() 将所有负值参数与字符串长度相加,slice(-11,-9) 相当于 slice(7,9),最后提取的子字符串为 "Ja";

substring() 会将所有负值转化为0,substring(-11,-9) 相当于 substring(0,0),即从第0位开始,第0位结束,即提取的是空字符串;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwjwpz.html