十三、字符串的常用方法

41 阅读6分钟

一、字符串的创建

  1. 字面量的方式创建
var str = 'abc'
  1. 内置构造函数的方式创建
var str1 = new String()        ---->创建一个空的字符串
var str2 = new String(’abc)    ---->创建一个有内容的字符串

二、字符串的length和索引

  1. 字符串的length:和数组的length一样,表示字符串的长度。
var str = 'abc'
console.log(str.length)  ---->输出值为3,表示字符串的长度为3
  1. 字符串的索引:表示获取到字符串中指定位置的值。
var str = 'abc'
console.log(str[1])    ---->返回的值为索引1位置对应的值:b

注意:字符串中通过索引能够获取到指定位置的值,只不过获取到的值是只读的,换句话说,能看,但是不能改。

 var str = 'abc'
 str[1] = 'q'          ----->因为字符串通过索引获得的值是只读的,我们修改是没用的,所以这一行代码没用
 console。log(str1)    -----> 返回值仍为:abc

三、字符串的常用方法

  1. charAt
  • 语法:字符串.charAt(索引)
  • 作用:查询指定下标的值
  • 返回值:查询到的值,如果没有查询到的就是一个空的字符串
var str = 'abcd'
console.log(str.charAt(0))          ----->返回索引0对应的值:a   
console.log(str.charAt(50))           ----->返回索引50对应的值,没有,返回空字符串   

2.charCodeAt

  • 语法:字符串.charCodeAt(索引)
  • 作用:查询指定下标的值对应的十进制码
  • 返回值:查询到的值对应的十进制码,如果没有查询到返回一个NaN
var str = 'abcd'
console.log(str.charCodeAt(0))        ----->a对应的十进制码为97
console.log(str.charCodeAt(50))        ----->查询不到返回NaN 

3.toLowerCase

  • 语法:字符串.toLowerCase()
  • 作用:将这个字符串转换为小写
  • 返回值:转换后的字符串
var str = 'ABCD'
console.log(str.toLowerCase())  ----->返回abcd

4.toUpperCase

  • 语法:字符串.toUpperCase()
  • 作用:将这个字符串转换为大写
  • 返回值:转换后的字符串
var str = 'abcd'
console.log(str.toUpperCase())  ----->返回ABCD

5.substr

  • 语法:字符串.substr(开始索引,多少个)
  • 作用:截取指定的字符串
  • 返回值:截取到的字符串
var str = 'qwertyuiop'
console.log(str.substr(0,3))   ---->从索引0开始截取三个,qwe

mdn说明这个方法将来某一天可能会删除,所以建议我们使用substring 6.substring

  • 语法:字符串.substring(开始索引,结束索引)
  • 作用:截取指定的字符串
  • 返回值:截取到的字符串
var str = 'qwertyuiop'
console.log(str.substr(0,3))   ---->从索引0开始到索引3结束,返回值为qwe

注意:

1.参数包前不包后

2.结束索引默认值为字符串的长度

var str = 'qwertyuiop'
console.log(str.substring(0))      
---->从索引0开始,结束索引没有传递,索引默认是length,那么截取的就是从索引0到最后,qwertyuiop 

7.slice

  • 语法:字符串.slice(开始索引,结束索引)
  • 作用:截取指定的字符串
  • 返回值:截取到的字符串
var str = 'qwertyuiop'
console.log(str.slice(0,3))   ----->从索引0开始到索引3结束,返回值为qwe

注意:

1.参数包前不包后

2.结束索引可以不写,相当于写了length

var str = 'qwertyuiop'
console.log(str.slice(0))  
  ----->结束索引默认值为length,相当于截取索引0到最后位置的字符串:qwertyuiop 

3.开始索引可以不写,不写相当于0

var str = 'qwertyuiop'
console.log(str.slice())  
  ----->开始索引默认值为0,相当于截取索引0到最后位置的字符串:qwertyuiop 

4.结束索引支持负数,相当于length加负数

var str = 'qwertyuiop'
console.log(str.slice(0,-2))
  ----->结束索引的位置为-2,相当于length + (-2),即截取索引0到索引8的字符串,返回值为qwertyui
  1. concat
  • 语法:字符串.concat(数据1,数据2...)
  • 作用:将字符串和参数传递的数据进行拼接
  • 返回值:拼接后的字符串
var str = 'qwe'
console.log(str.concat('@','+','!'))   ----->返回值为:qwe@+!

9.indexOf

  • 语法:字符串.indexOf(数据,开始索引)
  • 作用:寻找数据在字符串中的位置
  • 返回值:找到的时候返回索引,找不到返回-1
var str = 'qwe'
console.log(str.indexOf('e',0))  ----->从索引0的位置开始寻找e,返回e的索引位置:2
console.log(str.indexOf('q',1))  ----->从索引1的位置开始寻找q,找不到q的索引位置,返回:-1

注意:第二个参数可以不传递,默认值为0

var str = 'qwe'
console.log(str.indexOf('e'))   
    ----->没有传递第二个参数,默认值为0,即从索引0的位置开始寻找e,最终返回e的索引位置:2

10.lastIndexOf

  • 语法:字符串.lastIndexOf(数据,开始索引)
  • 作用:寻找数据在字符串中的位置(从后往前/从右向左)
  • 返回值:找到的时候返回索引,找不到返回-1
var str = 'qwe'
console.log(str.lastIndexOf('e'0))    ----->从索引0的位置开始寻找e,返回e的索引位置:2
console.log(str.lastIndexOf('q'1))    ----->从索引1的位置开始寻找q,没有找到,返回:-1

注意:第二个参数可以不传递,默认值为length-1

var str = 'qwe'
console.log(str.indexOf('q'))     
   ----->没给开始索引的位置,默认为length-1,即开始索引的位置为索引2,返回:0

11.split

  • 语法:字符串.split(数据,开始索引)
  • 作用:在字符串中找到‘符号’,然后将这个字符串分割并放在一个数组内
  • 返回值:一个数组
var str = 'qwer, yuio, assdf'
console.log(str.split('o'))   ----->通过‘o’将字符串分割到一个数组中,返回['qwer, yui', ', assdf']

注意:参数如果传递的是空字符串,会将字符串全部分隔开

var str = 'qwer, yuio, assdf'
console.log(str.split(''))   ----->会得到13个字母、2个‘,’以及2个空格组成的长度为17的数组

12.trim

  • 语法:字符串.trim()
  • 作用:去掉字符串两侧的空格
  • 返回值:去掉空格后的字符串
var str = ' a  b  c '
console.log(str)           ----->原来的字符串: a b c (前后有空格)
console.log(str.trim())    ----->新的字符串:a b c(前后没空格) 

13.trimStart/trimLeft

  • 语法:字符串.trimStart() /字符串.trimLeft()
  • 作用:去掉字符串左侧的空格
  • 返回值:去掉左侧空格的字符串
var str = ' a  b  c '
console.log(str)                ----->原来的字符串: a b c (前后有空格)
console.log(str.trimStart())    ----->新的字符串:a b c  (左侧没空格) 

14.trimEnd/trimRight

  • 语法:字符串.trimEnd() /字符串.trimRight()
  • 作用:去掉字符串左侧的空格
  • 返回值:去掉左侧空格的字符串
var str = ' a  b  c '
console.log(str)              ----->原来的字符串: a b c (前后有空格)
console.log(str.trimEnd())    ----->新的字符串:a b c(右侧没空格) 

15.includes

  • 语法:字符串.includes(字符串片段)
  • 作用:判断当前字符串中是否拥有字符串片段
  • 返回值:true/false
var str = 'qwertyuiop'
console.log(str.includes('tyui'))     ----->true
console.log(str.includes('tyuip'))    ----->false

16.startsWith

  • 语法:字符串.startsWith(字符串片段)
  • 作用:判断字符串开头是否是指定的字符串片段
  • 返回值:true/false
var str = 'qwertyuiop'
console.log(str.startsWith('qwer'))     ----->true
console.log(str.startsWith('qwerp'))      ----->false

17.endsWith

  • 语法:字符串.endsWith(字符串片段)
  • 作用:判断字符串结尾是否是指定的字符串片段
  • 返回值:true/false
var str = 'qwertyuiop'
console.log(str.endsWith('iop'))         ----->true
console.log(str.endsWith('iopa'))        ----->false

18.replace

  • 语法:字符串.replace('要被替换的字符','替换的字符')
  • 作用:找到当前字符串中第一个参数对应的值,然后将其替换为第二个字符串
  • 返回值:替换完成的字符串
var str = 'abcdefg'
console.log(str.replace('abc','@@!!'))         ----->返回值:@@!!defg

console.log(str.replace('qwer','@@!!'))        
----->在原字符串内没有找到第一个参数对应的值,就不会执行替换操作,所以返回值仍为:abcdefg