字符串的常用方法
字符串的方法很多,但是常用的就那么些,还有些都没有这么用过,下面简单介绍下
1.charAt(index): 返回指定下表的值,返回值新的字符串,不影响原来的字符串
let str = 'hello';
let newStr = str.charAt(1);
console.log(str) // hello
console.log(newStr) // e
2.charCodeAt(index): 返回指定下表的值的unicode值,返回值是Unicode码,不影响原来的字符串
let str = 'hello';
let newStr = str.charCodeAt(1);
console.log(str) // hello
console.log(newStr) // 101
3.fromCharcode(u1,u2,u3): 这个是String自己使用的静态方法,参数是unicode码,返回对应的值
let str = String.fromCharCode(72,69,76,76,79);
let str1 = String.fromCharCode(97,98,99)
console.log(str) // HELLO
console.log(str1) // abc
4.concat(val1,val2,val3,val4...): 连接两个或多个字符串,不改变现有的字符串,返回值是拼接后的字符串
let str = 'hello';
let newStr = str.concat('world','!','.....');
console.log(str) // hello
console.log(newStr) // helloworld!.....
5.indexOf(str, [start]): 查找字符串中时候包含某个值,找到返回第一个出现的位置的索引值,找不到返回-1,start是查找开始的位置,start的位置包含在查找的范围中,是可选的,可以不写,默认就从0开始查起。
let str = 'hello';
console.log(str.indexOf('el')) // 1
console.log(str.indexOf('al')) // -1
console.log(str.indexOf('el',2)) // -1
6.lastIndexOf(str, [start]): lastIndexOf和indexOf一样的使用,只是返回的是最后一次出现的位置索引值,找不到返回-1,start是查找开始的位置,是可选的,可以不写,默认就从string.length-1开始查起,也就是说从后往前面查的。
let str = 'hello';
console.log(str.lastIndexOf('l')) // 3
console.log(str.lastIndexOf('c')) // -1
console.log(str.lastIndexOf('l',2)) // 2
7.replace(regexp|str, replacetext): 用于把字符串中的某些字符串替换成其他字符串,但是只替换一次,也就是说如果字符串中有多个,但是只会替换第一个符合的值。还有一种是使用正则,是把符合正则的替换成自己要替换的内容。不会改变原字符串。
let str = ' hello world ';
let newStr1 = str.replace('l','a')
let newStr2 = str.replace(/\s*/g,'')
let newStr3 = str.replace(/^\s*|\s*$/g,'')
console.log(str) // ' hello world '
console.log(newStr1) // ' healo world '
console.log(newStr2) // 'helloworld',这个是去除所有空格
console.log(newStr3) // 'hello world', 这个是去除字符串两头的空格
8.trim(): 删除字符串两端的空格。
let str = ' hello world ';
let newStr1 = str.trim()
console.log(str) // ' hello world '
console.log(newStr1) // 'healo world'
9.slice(start, [end]):截取字符串,返回一个新的字符串,不会改变原字符串。新的字符串是从start位置开始,end结束,但是不包括end的位置
let str = 'hello world';
let newStr1 = str.slice(1)
let newStr2 = str.slice(1,3)
console.log(str) // 'hello world'
console.log(newStr1) // 'ello world'
console.log(newStr2) // 'el'
10.substr(start, [length]):截取字符串,返回一个新的字符串,不会改变原字符串。新的字符串是从start位置开始,截取length长度的字符串,没有的话,默认截取到结尾
let str = 'hello world';
let newStr1 = str.substr(1)
let newStr2 = str.substr(1,3)
console.log(str) // 'hello world'
console.log(newStr1) // 'ello world'
console.log(newStr2) // 'ell'
11.substring(start, [end]):截取字符串,返回一个新的字符串,不会改变原字符串。新的字符串是从start位置开始,end结束,但是不包括end的位置
let str = 'hello world';
let newStr1 = str.substring(1)
let newStr2 = str.substring(1,3)
console.log(str) // 'hello world'
console.log(newStr1) // 'ello world'
console.log(newStr2) // 'el'
12.split(separator, [limit]):把字符串按照指定分割成一个数组,一个参数是指定字符串或者正则,第二个参数是数组的最大长度,选填。
let str = 'helloworld';
let str1 = 'hello,world';
let newStr1 = str.split('')
let newStr2 = str1.split(',')
console.log(str) // helloworld
console.log(newStr1) // ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
console.log(newStr2) // ['hello', 'world']
PS:字符串可以转数组,数组也可以转字符串,方法是join()
let arr = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
let str = arr.join("")
console.log(str)
13.toLowerCase(str):把字符串都变成小写,英文
let str = 'HELLOWORLD';
let newStr1 = str.toLowerCase('')
console.log(str) // HELLOWORLD
console.log(newStr1) // helloworld
14.toUpperCase(str):把字符串都变成大写,英文
let str = 'helloworld';
let newStr1 = str.toUpperCase('')
console.log(str) // helloworld
console.log(newStr1) // HELLOWORLD
15.repeat(number): 重复字符串,number必须是一个正整数
let str = 'helloworld';
let newStr1 = str.repeat(3)
console.log(str) // helloworld
console.log(newStr1) // helloworldhelloworldhelloworld
16.endsWith(str): 检查字符串是不是以指定字符串结束的
let str = 'helloworld';
let newStr1 = str.endsWith('ld')
console.log(str) // helloworld
console.log(newStr1) // true
17.includes(str): 检查字符串是否包含指定的字符串或字符
let str = 'helloworld';
let newStr1 = str.includes('ld')
console.log(str) // helloworld
console.log(newStr1) // true
18.match(regexp): 根据正则或者字符串来查找字符串中是否包含匹配的项,返回数组或者null
let str = 'helloworld';
let newStr1 = str.match('ld')
console.log(str) // helloworld
console.log(newStr1) // ['ld', index: 8, input: 'helloworldld', groups: undefined]
19.search(regexp): 根据正则或者字符串来查找是否包含匹配项,有的话返回索引,没有返回-1
let str = 'helloworld';
let newStr1 = str.search('ld')
console.log(str) // helloworld
console.log(newStr1) // 8
20.localeCompare(str): 判断每个字母的排序,在当前字符串前面返回正值,在后面就是负值,一样的就返回0
let str = 'helloworld';
let newStr1 = str.localeCompare('ad')
let newStr2 = str.localeCompare('helloworld')
let newStr3 = str.localeCompare('halloworld')
let newStr4 = str.localeCompare('id')
console.log(str) // helloworld
console.log(newStr1) // 1
console.log(newStr2) // 0
console.log(newStr3) // -1
console.log(newStr4) // -1