这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
本文主要对 JavaScript 中 String 对象的方法进行介绍。具有一定的参考价值,下面跟着小编一起来看下吧
1. 字符方法
1.1charAt() 方法,返回字符串中指定位置的字符。
- 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.1concat() 方法,将一个或多个字符串拼接起来,返回新的字符串。不改变原始字符串。
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.2slice()、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 位结束,即提取的是空字符串;
substr() 将第一个参数 - 11 与字符串长度相加,将第二个参数 - 9 转化为 0,substr(-11,-9) 相当于 substr(7,0),即从第 7 位开始,提取 0 个字符串,即也是空字符串。
3. 字符串位置方法
indexOf() 方法和 lastIndexOf() 方法,返回要检索的子字符串在原始字符串中第一次出现的位置。
indexOf() 方法从原始字符串开头向后检索子字符串,lastIndexOf() 方法从原始字符串末尾向前检索子字符串。
indexOf() 方法和 lastIndexOf() 方法接受一个必选参数。
- var test = "balala balala balala";
- alert(test.indexOf("a")); //"1"
- alert(test.lastIndexOf("a")); //"19"
indexOf() 从开始位置向后检索子字符串"a","a"第一次出现的位置是 1;lastIndexOf() 从末尾位置向前检索子字符串 "a","a" 第一次出现的位置是 19。
如果没有找到要检索的子字符串,则这两个方法都会返回 - 1。
- var test = "balala balala balala";
- alert(test.indexOf("h")); //"-1"
- alert(test.lastIndexOf("h")); //"-1"
indexOf() 方法和 lastIndexOf() 方法接受第二个可选参数,表示从原始字符串的哪个位置开始。
- var test = "balala balala balala";
- alert(test.indexOf("a", 7)); //"8"
- alert(test.lastIndexOf("a", 7)); //"5"
indexOf("a",7) 从第 7 位向后检索子字符串 "a","a" 第一次出现的位置是 8;lastIndexOf("a",7) 从第 7 位向前检索子字符串 "a","a" 第一次出现的位置是 5。
4. 字符串大小写换换方法
ECMAScript 中涉及字符串大小写转换的方法有 4 个:toUpperCase()、toLocaleUpperCase()、toLowerCase()、toLocaleLowerCase()。
toUpperCase() 和 toLowerCase() 是典型的方法,toLocaleUpperCase() 和 toLocaleLowerCase() 是针对当地地区的方法,以保证字符串正确的转换。
在不知道自己的代码在哪种语言环境中运行时,使用针对当地地区的方法更稳妥一些。
- var test = "balala balala balala";
- alert(test.toLocaleUpperCase()); //"BALALA BALALA BALALA"
- alert(test.toUpperCase()); //"BALALA BALALA BALALA"
- alert(test.toLocaleLowerCase()); //"balala balala balala"
- alert(test.toLowerCase()); //"balala balala balala"
5.trim() 方法
trim() 方法会创建原始字符串的副本,并删除前置和后缀的所有空格,然后返回结果,不会改变原始字符串。
- var test = " balala balala balala ";
- var test1 = test.trim();
- alert(test1); //"balala balala balala"
- alert(test); // " balala balala balala "
- alert(test1.length); //"20"
- alert(test.length); //"28"
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持 phperz!
来源: http://www.phperz.com/article/17/0520/328886.html