js字符串常用方法也是面试中经常遇到到问题。
话不多说,直接code一把梭
indexOf
indexOf该方法是字符串里最常用的,一般使用在判断情况下。
查找字符串首次出现的位置,如果找到返回该字符串的下标值,下标从0开始查找,找不到返回-1。
有很多小伙伴们,不知道indexOf第二个参数,默认可填,第二个参数理解就是从第几位开始查找, 如果找不到返回 -1
演示:
var str = 'hello 秦司令';
console.log(str.indexOf('秦')) // 6
console.log(str.indexOf('a')) // -1
console.log(str.indexOf('秦', 7)) // -1
lastIndexOf
lastIndexOf跟indexOf方法一样,只不过它查找字符串最后出现的位置,同样,查找到返回下标位置,找不到为-1。
演示:
var str = 'hello 秦司令秦';
console.log(str.lastIndexOf('秦')) // 9
console.log(str.lastIndexOf('a')) // -1
可以看到上面代码中,str 字符串里面有两个 "秦" 而lastIndexOf该方法只查找最后出现的位置。
charAt
charAt该方法也跟indexOf差不多,只不过它是跟indexOf颠倒过来了。
charAt方法是查找下标,返回对应的内容,如果没有该下标,则返回空字符串。
演示:
var str = 'hello 秦司令秦';
console.log(str.charAt(0)) // h
console.log(str.charAt(6)) // 秦
console.log(str.charAt(19)) //空
charCodeAt
charCodeAt是文字所存的Unicode编码,不经常使用。
演示:
var str = 'hello 秦司令秦';
var n = '鸟'
console.log(str.charCodeAt()) //104
console.log(n.charCodeAt()) //40479
上面代码中,str的返回值就是它的字符串首字符串 h 在计算机内所存的编码,charCodeAt方法只查找首字符串,想要全部获取一下编码,遍历一下就行, n的变量 "鸟" 返回值 40479 它也是在计算机内所存的编码。
String.fromCharCode
该方法跟上面的charCodeAt方法正好相反,这两方法搭配是一套,该方法是把所存的编码在转换为文字。
演示:
console.log(String.fromCharCode(104)) //h
console.log(String.fromCharCode(40479)) //鸟
substring
该方法也常用,而且还非常好使,一位参数是截取掉几位字符,二位参数是从哪个位置开始,到那个位置结束的前一位,不包括结束的位置,不会改变原字符串。
演示:
var str = 'hello 秦司令秦';
console.log(str.substring(1)) // ello 秦司令秦
console.log(str.substring(1,2)) // e
console.log(str) // 原字符串不变
substr
substr跟substring差不多,但是该方法要比substring强大一些,它可以有负数,一位参数是截取掉几位字符,二位参数是从哪个位置开始,截取几位,不改变原字符串。 ######演示:
var str = 'hello 秦司令秦';
console.log(str.substr(1)) // ello 秦司令秦
console.log(str.substr(1,2)) // el
console.log(str.substr(-4,4)) // 秦司令秦
console.log(str) //不会改变原字符串
slice
该方法也是截取字符,它跟substring方法几乎一样,只不过该方法也可以写负数,其它的使用方式,都跟substring一样,该方法也不会改变原字符串。
演示:
var str = 'hello 秦司令秦';
console.log(str.slice(1)) // ello 秦司令秦
console.log(str.slice(1,3)) // el
console.log(str.slice(-4,-2)) // 秦司令秦
console.log(str) // 不会改变原字符串
split
该方法是字符串分割为数组,参数是以什么方式分割。同样不会改变原字符串。
演示:
var str = 'hello秦司令秦';
var str1 = 'hello 秦司令';
console.log(str.split('')) //["h", "e", "l", "l", "o", "秦", "司", "令", "秦"]
console.log(str1.split(' ')) //["hello", "秦司令"]
console.log(str1,str) //未发生改变
上面代码中,str变量字符串是整齐的,所以参数内是默认的,然后以每个字符分割了,str1变量字符串中间有个空格,所以参数内是以空格分割了。
toLowerCase
将字符串转换为小写,不会改变原字符串。
演示:
var str1 = 'HELLO';
console.log(str1.toLowerCase()) // hello
toUpperCase
将字符串转换为大写,不会改变原字符串。
演示:
var str = 'hello秦司令秦';
console.log(str.toUpperCase()) //HELLO秦司令秦
replace
替换字符串,第一个值为被替换的值,第二个值为替换的值,不会改变原字符串。
演示:
var str = 'hello秦司令秦';
console.log(str.replace('h','秦')) //秦ello秦司令秦
console.log(str) // 未发生改变
match
匹配字符串,查找到返回一个数组对象,数组对象里有 匹配的值 查找字符串的下标 和 原字符串内容,找不到返回null
演示:
var str = 'hello秦司令秦';
console.log(str.match('秦')) // ["秦", index: 5, input: "hello秦司令秦", groups: undefined]
console.log(str.match('1')) // null
search
该方法跟indexOf一模一样,查找字符串首次出现的位置,如果找到返回该字符串的下标值,下标从0开始查找,找不到返回-1。
演示:
var str = 'hello秦司令秦';
console.log(str.search('o')) //4
console.log(str.search('d')) //-1
repeat
该方法的参数是复制几遍字符串。不会改变原字符串。
演示:
var str = 'hello秦司令秦';
console.log(str.repeat(3)) //hello秦司令秦hello秦司令秦hello秦司令秦
includes
该方法返回Boolean值,查找字符串里面有没有该值。第一位参数是 "值" , 第二位参数是下标。
演示:
var str = 'hello秦司令秦';
console.log(str.includes('秦')) //true
console.log(str.includes('秦',5)) //true
console.log(str.includes('啦')) //false
startsWith
该方法返回Boolean值,查找字符串开头是不是该值。第一位参数是 "值" , 第二位参数是下标。
演示:
var str = 'hello秦司令秦';
console.log(str.startsWith('秦')) //false
console.log(str.startsWith('秦',5)) //true
console.log(str.startsWith('h')) //true
endsWith
该方法返回Boolean值,查找字符串结尾是不是该值。第一位参数是 "值" , 第二位参数是下标,下标必须往后查找一位,如果要找的下标是5,就必须写6
演示:
var str = 'hello秦司令秦';
console.log(str.endsWith('秦')) //true
console.log(str.endsWith('秦',6)) //true
console.log(str.endsWith('h')) //false
希望这篇文章能对你有所帮助,如有问题, 请各位大佬指出
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!