字符串
获取字符串长度
length
属性可以获取字符串长度,空格也会计算在内。
const s1 = 'string';
console.log(s1.length); // 6
const s2 = 'How are you doing today?';
console.log(s2.length); // 24
单个值可直接获取:
let str = '1,3';
console.log(str[0]); // 1
console.log(str[1]); // ,
获取字符串指定位置的值
charAt()
获取指定位置的字符。
与通过索引值获取的区别是:
- 当索引值不在字符串长度范围内时,
str[index]
会返回 undefined,而charAt(index)
会返回空字符串 str[index]
不兼容 ie6-ie8,charAt(index)
可以兼容
const str = 'zgh';
str.charAt(1); // g
str[1]; // g
str.charAt(3); // ''
str[3]; // undefined
示例:计算当前是星期几
方式一:
const day = '今天是星期' + '日一二三四五六'.charAt(new Date().getDay());
方式二:
const arr = ['日', '一', '二', '三', '四', '五', '六'];
const week = new Date().getDay();
const day = '今天是星期' + arr[week];
chatCodeAt()
获取指定位置字符的 Unicode 值,返回值是 0 - 65535 之间的整数,表示给定索引处的 UTF-16 代码单元,如果指定位置没有字符,将返回 NaN
let str = 'abcdefg';
str.charCodeAt(1); // 98
检索是否包含指定的字符
indexOf()
查找某个字符,有则返回第一次匹配到的索引位置,否则返回 -1。接收两个参数:
- searchvalue:必需,规定需检索的字符串值
- fromindex:可选的整数参数,规定开始检索的位置。取值范围是 0 到
string.length - 1
。如省略则从首字符开始检索
const str = 'abcdefgabc';
console.log(str.indexOf('a')); // 0
console.log(str.indexOf('z')); // -1
console.log(str.indexOf('c', 4)); // 9
lastIndexOf()
查找某个字符,返回最后一次匹配到的索引位置,否则返回 -1
'zghzgh'.lastIndexOf('z'); // 3
includes()
判断字符串是否包含指定的字符串。返回 true 或 false。接收两个参数:
- searchvalue:必需,要查找的字符串
- start:可选,设置从那个位置开始查找,默认为 0
'zgh'.includes('g'); // true
startsWith()
检测字符串是否以指定的字符串开始。返回 true 或 false。接收两个参数:字符串、查找位置
const str = 'Hello world!';
str.startsWith('Hello'); // true
str.startsWith('wo', 6); // true
endsWith()
检测字符串是否以指定的字符串结尾。返回 true 或 false。接收两个参数:
- 要搜索的字符串
- 字符串的长度 n,从字符串的前 n 个字符中进行检索,默认值为原始字符串长度 string.length
const str = 'Hello world!';
str.endsWith('!'); // true
str.endsWith('lo', 5); // true
截取字符串
substring()
截取字符串中介于两个指定下标之间的字符
语法:str.substring(start,end)
参数 | 描述 |
---|---|
start | 必需,非负整数 |
end | 可选,非负整数,截取结果不包括该项 |
let a = 'abcdef';
let b = a.substring(1, 3);
console.log(b); // bc
// 截取小数点后两位数字
let str = '22.123456';
let res = str.substring(0, str.indexOf('.') + 3);
console.log(res); // 22.12
slice()
语法:str.slice(start, end)
参数 | 描述 |
---|---|
start | 必需,起始下标。如果是负数,那么它规定从字符串尾部开始算起的位置。即-1 指最后一个字符,-2 指倒数第二个字符,以此类推 |
end | 可选,结束下标,不包含该处。如果没有指定该参数,那么结果包含从 start 到结束的所有字符。若为负数,同上 |
示例:截取身份证
let str = '330102197807280020';
let res = str.slice(4);
let res1 = str.replace(res, '**************');
console.log(res1); // 3301**************