字符串中常用的方法
所有用单引号、双引号、反引号包起来的都是字符串
每一个字符串都是由0到N个字符组成
let str = 'xinxingguanzhuangbingduquuozaijiaziwogeli'
console.log(str.length)// => 字符串长度
console.log(str[0]) // => 获取索引为0的字符
// 循环输出字符串中的每一个字符
for (let i = 0; i < str.length; i++) {
let char = str[i];
// console.log(char)
}
// 1. charAt / charCodeAt
/*
charAt: 根据索引获取指定位置的字符
charCodeAt:获取指定字符的ASCII码值(Unicode)
@params n[number] 获取字符指定的索引
@return 返回查找到的字符 找不到返回的是空字符串 不是undefined ,或者对应的编码值
*/
console.log(str.charAt(0)) // => x
console.log(str[0]) // => x
console.log(str.charAt(1000)) // => '' 空字符串
console.log(str[1000]) // => undefined
console.log(str.charCodeAt(0)) // => 120
console.log(String.fromCharCode(120)) // => x
// 2.substr/ subsring
/*
substr: 实现字符串的截取
substr(n,m): 从索引n开始截取m个字符,m不写截取到末尾
substring(n,m): 从索引n开始截取到索引m(不含m),m不写截取到末尾
slice(n,m):和substring一样,都是找到索引为m处
但是slice支持负数为索引,其余两个不可以
*/
console.log(str.substr(2,6)) // => nxingg
console.log(str.substring(2,6)) // => nxin
console.log(str.substr(3)) // => xingguanzhuangbingduquanguozaijiaziwogeli
console.log(str.substring(3,100)) // => xingguanzhuangbingduquanguozaijiaziwogeli
console.log(str.substring(3,7)) // => xing
console.log(str.slice(3,7)) // => xing
console.log(str.substring(-7,-3)) // => '' 不支持负数索引
console.log(str.slice(-7,-3)) // => iwog 支持负数索引 快捷查找:负数索引,我们可以按照str.length+负索引的方式查找 => slice(41-7,41-3)
// 3.验证字符串是否存在 indexOf / lastIndexOf / includes
/*
indexOf(m,n): 获取m第一次出现的位置的索引,n是控制查找位置的起始索引
lastIndexOf(m): 获取m最后一次出现位置的索引
没有该字符,返回-1
includes(m): 返回true/false
*/
console.log(str.indexOf('i')) // => 1
console.log(str.lastIndexOf('i')) // => 40
console.log(str.indexOf('#')) // => -1
console.log(str.indexOf('guan')) // => 7 验证整体第一次出现的位置索引,返回的第一个字符所在的位置索引
console.log(str.includes('a')) // => true
// 模糊查询
var arr = ['blue','red','yellow','white','black','cycn','color']
var input = 'o'
var arr1 = arr.filter(function(item) {
return item.includes(input)
})
console.log(arr1) // ["yellow", "color"]
// 4.大小写转换
// toUpperCase / toLowerCase
/*
toUpperCase(): 转大写
toLowerCase(): 转小写
*/
console.log(str.toUpperCase()) // => XINXINGGUANZHUANGBINGDUQUUOZAIJIAZIWOGELI
console.log(str.toLowerCase()) // => xinxingguanzhuangbingduquuozaijiaziwogeli
// 5.split([分隔符]):把字符串按照指定的分隔符拆分成数组(和数组中的join相对应)
// replace(老字符,新字符) :实现字符串的替换(结合正则来使用)
let str1 = 'red/blue/green/white'
str1 = str1.split('/').toString() // join()也可以
console.log(str1) // => red,blue,green,white
console.log(str1.replace(/,/g,'#')) //使用正则可以全局替换, 不使用只替换掉第一个出现的字符
字符串其他方法
match localCompare trim trimLeft trimRight ...
控制台输出String.prototype 查看所有字符串中提供的方法
//charAt(); 返回指定索引位置的字符
//indexOf(); 返回字符串中检索指定字符第一次出现的位置
//lastIndexOf(); 返回字符串中检索指定字符最后一次出现的位置
//slice() 提取字符串的片断,并在新的字符串中返回被提取的部分
//split() 把字符串分割为子字符串数组
//toLowerCase() 把字符串转换为小写
//toUpperCase() 把字符串转换为大写
//substr() 从起始索引号提取字符串中指定数目的字符
//substring() 提取字符串中两个指定的索引号之间的字符
//ES6
//includes(): 返回布尔值,表示是否找到了参数字符串。
//startsWith(): 返回布尔值,表示参数字符串是否在原字符串的头部。
//endsWith(): 返回布尔值,表示参数字符串是否在原字符串的尾部
//repeat(): 返回一个新字符串,表示将原字符串重复n次。
//padStart(): 用于头部补全
//padEnd(): 用于尾部补全。
网友评论