String方法详解

方法 描述
charAt() 返回在指定位置的字符。
charCodeAt() 返回在指定的位置的字符的 Unicode 编码。
concat() 连接字符串。
fromCharCode() 从字符编码创建一个字符串。
indexOf() 检索字符串。
lastIndexOf() 从后向前搜索字符串。
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分。
split() 把字符串分割为字符串数组。
toLowerCase() 把字符串转换为小写。
toUpperCase() 把字符串转换为大写。
toString() 返回字符串。
trim() 去除字符串头尾空格

trim方法 去除前后空格

charAt

定义与作用:

charAt() 方法可返回指定位置的字符。 提示:JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串。

语法:

  1. stringObject.charAt(index)

参数说明:

参数 描述
index 必需。表示字符串中某个位置的数字,即字符在字符串中的下标。

演示代码:

  1. var str="Hello world!"
  2. console.log(str.charAt(1)) //输出 e

chatCodeAt

定义与作用:

charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。 方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。

语法:

  1. stringObject.charCodeAt(index)

参数说明:

参数 描述
index 必需。表示字符串中某个位置的数字,即字符在字符串中的下标。

演示代码:

  1. var str="Hello world!"
  2. console.log(str.charCodeAt(1)) // 输出 101
  3. console.log(str.charCodeAt(2)) // 输出 108

concat

定义与作用:

concat() 方法用于连接两个或多个字符串。 oncat() 方法将把它的所有参数转换成字符串,然后按顺序连接到字符串 stringObject 的尾部,并返回连接后的字符串。并不修改stringObject的值 提示:请注意,使用 “ + “ 运算符来进行字符串的连接运算通常会更简便一些。

语法:

  1. stringObject.concat(stringX,stringX,...,stringX)

参数说明:

参数 描述
stringX 必需。将被连接为一个字符串的一个或多个字符串对象。

演示代码:

  1. var str1="Hello "
  2. var str2="world!"
  3. console.log(str1.concat(str2)) // 输出 Hello world!
  4. console.log(str1) // 输出 Hello
  5. console.log(str2) // 输出 world!

fromCharCode

定义与作用:

fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。

注释:该方法是 String 的静态方法,字符串中的每个字符都由单独的数字 Unicode 编码指定。

它不能作为您已创建的 String 对象的方法来使用。因此它的语法应该是 String.fromCharCode(),而不是 myStringObject.fromCharCode()。

语法:
参数说明:

参数 描述
numX 必需。一个或多个 Unicode 值,即要创建的字符串中的字符的 Unicode 编码。

演示代码:

  1. console.log(String.fromCharCode(72,69,76,76,79)) // 输出 HELLO
  2. console.log(String.form(65,66,67)) // 输出ABC

indexOf

定义与作用:

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

说明:该方法将从尾到头地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的结尾(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一个字符在 stringObject 中的位置。stringObject 中的字符位置是从 0 开始的。

语法:

  1. stringObject.lastIndexOf(searchvalue,fromindex)

返回值:如果在 stringObject 中的 fromindex 位置之前存在 searchvalue,则返回的是出现的最后一个 searchvalue 的位置。
参数说明:

参数 描述
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。

演示代码:

  1. var str="Hello world!"
  2. console.log(str.lastIndexOf("Hello")) // 输出 0
  3. console.log(str.lastIndexOf("world")) // 输出 6

lastIndexOf

定义与作用:

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

说明:该方法将从尾到头地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的结尾(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一个字符在 stringObject 中的位置。stringObject 中的字符位置是从 0 开始的。

语法:

  1. stringObject.lastIndexOf(searchvalue,fromindex)

返回值:如果在 stringObject 中的 fromindex 位置之前存在 searchvalue,则返回的是出现的最后一个 searchvalue 的位置。
参数说明:

参数 描述
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。

演示代码:

  1. var str="Hello world!"
  2. console.log(str.lastIndexOf("Hello")) // 输出 0
  3. console.log(str.lastIndexOf("world")) // 输出 6

slice

定义与作用:

slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

说明:String 对象的方法 slice()、substring() 和 substr() (不建议使用)都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。slice() 与 substr() 有所不同,因为它用两个字符的位置来指定子串,而 substr() 则用字符位置和长度来指定子串。

语法:

  1. string.slice(start,end)

返回值:一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
参数说明:

参数 描述
start 必须。 要抽取的片断的起始下标,第一个字符位置为 0。如果为负数,则从尾部开始截取。
end 可选。 紧接着要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。

演示代码:

  1. var str="Hello world!";
  2. var n=str.slice(1,5); // ello

split

定义与作用:

split() 方法用于把一个字符串分割成字符串数组。

语法:

  1. stringObject.split(separator,howmany)

返回值:一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。
参数说明:

参数 描述
separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

演示代码:

  1. var str="How are you doing today?"
  2. console.log(str.split(" "))
  3. // 输出 ['How', 'are', 'you', 'doing', 'today?']
  4. console.log(str.split(""))
  5. // 输出 ['H', 'o', 'w', ' ', 'a', 'r', 'e', ' ', 'y', 'o', 'u', ' ', 'd', 'o', 'i', 'n', 'g', ' ', 't', 'o', 'd', 'a', 'y', '?']
  6. console.log(str.split(" ",3))
  7. // 输出 ['How', 'are', 'you']

toLowerCase

toUpperCase

定义与作用:

toLowerCase() 方法用于把字符串转换为小写。 toUpperCase() 方法用于把字符串转换为大写。

语法:

  1. stringObject.toLowerCase()
  2. stringObject.toUpperCase()

返回值:一个新的字符串,在其中 stringObject 的所有大写字符全部被转换为了小(大)写字符。
演示代码:

  1. var str="How are you doing today?"
  2. console.log(str.toLowerCase()) // how are you doing today?
  3. console.log(str.toUpperCase()) // HOW ARE YOU DOING TODAY?

toString

定义与作用:

toString() 方法返回字符串。

语法:

  1. stringObject.toString()

返回值:stringObject 的原始字符串值。一般不会调用该方法。
演示代码:

  1. array.toString() boolean.toString() date.toString() Number.toString()
  2. array.toLocaleString() date.toLocaleString() Number.toLocaleString()
  3. stringObject.valueOf()

parseInt

定义与作用:

把字符串转换为数字

语法:

  1. parseInt('String')

返回值: 转换后的数字
演示代码:

  1. let str1 = '123'
  2. let str2 = '234a'
  3. console.log(parseInt(str1)) 输出 123
  4. console.log(parseInt(str1)) 输出 234

trim

定义与作用:

去掉字符串头尾字符

定义和用法
trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
trim() 方法不会改变原始字符串。
trim() 方法不适用于 null, undefined, Number 类型。
语法:

  1. string.trim()

返回值: 移除空格后的字符的

演示代码:

  1. var str = " Runoob ";
  2. alert(str.trim()); //Runoob

三、方法总结

1.找到匹配字符串所在的各个位置

  1. <script type="text/javascript">
  2. /*找到匹配字符串所在的各个位置*/
  3. var str="asadajhjkadaaasdasdasdasd";
  4. var position=[];
  5. var pos=str.indexOf("d");
  6. while(pos>-1){
  7. position.push(pos);
  8. pos=str.indexOf("d",pos+1);
  9. }
  10. console.log(position);//[3, 10, 15, 18, 21, 24]
  11. </script>

【JS基础】- 字符串方法 - 图1;)

2.字符串去重

  1. <script type="text/javascript">
  2. //String.split() 执行的操作与 Array.join 执行的操作是相反的
  3. //split() 方法用于把一个字符串分割成字符串数组。
  4. //join方法用于将字符串数组连接成一个字符串
  5. //如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
  6. var str="aahhgggsssjjj";//这里字符串没有可以分隔的字符,所以需要使用空字符串作为分隔符
  7. function unique(msg){
  8. var res=[];
  9. var arr = msg.split("");
  10. console.log(arr);
  11. for(var i=0;i<arr.length;i++){
  12. if(res.indexOf(arr[i])==-1){
  13. //若res中没有arr[i] 这个元素就进入这个循环
  14. res.push(arr[i]);
  15. }
  16. }
  17. return res.join("");
  18. }
  19. console.log(unique(str));//【输出 - ahgsj 】
  20. </script>

【JS基础】- 字符串方法 - 图2;)

3.判断字符串中字符出现的次数

【JS基础】- 字符串方法 - 图3;)

  1. <script type="text/javascript">
  2. /*
  3. 1.先实现字符串去重
  4. 2.然后对去重后的数组用for循环操作,分别与原始数组中各个值进行比较,如果相等则count++,循环结束将count保存在sum数组中,然后将count重置为0
  5. 3.这样一来去重后的数组中的元素在原数组中出现的次数与sum数组中的元素是一一对应的
  6. */
  7. var str="aacccbbeeeddd";
  8. var sum=[];
  9. var res=[];
  10. var count=0;
  11. var arr=str.split("");
  12. for(var i=0;i<arr.length;i++){
  13. if(res.indexOf(arr[i])==-1){
  14. res.push(arr[i]);
  15. }
  16. }
  17. for(var i=0;i<res.length;i++){
  18. for(var j=0;j<arr.length;j++){
  19. if(arr[j]==res[i]){
  20. count++;
  21. }
  22. }
  23. sum.push(count);
  24. count=0;
  25. }
  26. console.log(res);//["a", "c", "b", "e", "d"]
  27. for(var i=0;i<res.length;i++){
  28. var str=(sum[i]%2==0)?"偶数":"奇数";
  29. console.log(res[i]+"出现了"+sum[i]+"次");
  30. console.log(res[i]+"出现了"+str+"次");
  31. }
  32. </script>