字符串方法整理

435 阅读2分钟

1、查找类方法

str.charAt(n) 获取字符串的第 n 位

var str = "12 asd,asd-12asd";console.log(str.charAt(4)) // s

str.indexOf(subStr,index) 查找 str 中是否包含 subStr,如果包含,就返回 subStr 第一次出现的位置,index 从第几位开始向后查找,如果找不到就返回-1。

        var str = "12 asd,asd-12asd";        console.log(str.indexOf('a')) // 3        console.log(str.indexOf('a', 4)) // 7

str.lastIndexOf(subStr,index) 与indexOf类似,查找 str 中是否包含 subStr,如果包含,就返回 subStr 第一次出现的位置,index 从第几位开始向前查找,如果找不到就返回-1

        var str = "12 asd,asd-12asd";        console.log(str.lastIndexOf('a', 2))  // -1

2、截取类方法

slice(start,end) ( slice 严格按照参数的顺序,第0位 start,第1位 end)

substr(start,length) 

substring(start,end) (substring 会比较 start 和 end 谁小谁start)

  • start 从哪位开始截取(只写start 的话,就从 start 开始一直截取到最后)
  • end 截取到第几位(注意不包含end位
  • length 截取几位
字符串中,所有的截取类方法,都是返回一个新的字符串,并不会对原来的字符串进行操作

        var str = "12asd,asd-12asd";        var a = 2;        var b = 1;        console.log(str.slice(a, b)) // ''        console.log(str.slice(b, a)) // 2        console.log(str.substring(b, a)) // 2        console.log(str.substr(a, b)) // a

3、大小写转换

toUpperCase()  转换成大写

toLowerCase() 转换成小写

需要注意的是,这两个方法并不会改变原字符串

        var str = "12asd,aSd-12Asd";        console.log(str.toUpperCase()) // 12ASD,ASD-12ASD        console.log(str.toLowerCase()) // 12asd,asd-12asd        console.log(str) // 12asd,aSd-12Asd

4、分割字符串

str.split('分隔符') 把字符根据分隔符转换数组

返回值:转换后的数组

需要注意的是,split方法也不会改变原字符串

var str = "12asd,aSd-12Asd";var arr = str.split("a");console.log(arr) // ["12", "sd,", "Sd-12Asd"]console.log(str) // 12asd,aSd-12Asd

5、去掉收尾空格

str.trim()

var str = "             12asd,aSd-12Asd                 ";console.log('('+str.trim()+')'); // (12asd,aSd-12Asd)

6、转换成charCode编号与反转成字符串

str.charCodeAt(index) 将字符串的第几位,转换成 charCode 编号

String.fromCharCode(num1[,...[,numN]]) 将 charCodeAt 再转换成字符

"1": 49

"2": 50

字符串在比较时,会比较 charCode ,并且字符串比较是一位一位向后比较的,如果第0位编码一样,才会比较下一位,否则直接返回第 0 位的比较结果

var a = "1199";var b = "21";console.log(a > b); // falseconsole.log(a.charCodeAt(2)) // 57

        let str = '你好'        let arr = []        let newStr = ''        for (let i = 0; i < str.length; i++) {            arr.push(str.charCodeAt(i))        }        console.log(arr) // [20320, 22909]        for (let i = 0; i < arr.length; i++) {            newStr += String.fromCharCode(arr[i])        }        console.log(newStr) // 你好

7、链接字符串

str.concat(string2[,string3,...,stringN]) 把两个(或多个)字符串链接成一个新的字符串返回

var str = "ABC";var str2 = "10.0213";var str3 = str.concat(str2,"a","b");console.log(str3); // ABC10.0213ab