Strig: 字符串类
一个字符串是由多个字符组成的。
var str = 'Hello Front End!';
获取字符串中字符的个数,也称之为字符串的长度。字符串中也存在索引,也是从零开始的 'H'这个字母的索引就是0。空格,换行这些特殊的符号也是一个字符。
console.log(str.length);
字符串常用的方法:
charAt(索引) -> 获取指定索引位置的字符
console.log(str.charAt(8)); // 'o'
charCodeAt(索引) -> 返回指定索引位置字符的ASCII码值
console.log(str.charCodeAt(8)); // 111
截取字符串
// substr(n, m) -> 从索引n开始截取m个字符
// substring(n, m) -> 从索引n开始,找到索引m处(不包含m),将找到的字符串返回
// slice(n, m) -> 从索引n开始,找到索引m处(不包含m),将找到的字符串返回。它支持以负数作为索引,str.length+负数索引。
// 这三个方法如果只写了第一个参数,表示截取到末尾
console.log(str.substr(3, 5));
console.log(str.substring(3, 5));
console.log(str.slice(-5, -1));
查找字符的索引
// indexOf(字符) -> 获取指定字符在字符串中的第一次出现的索引位置
// lastIndexOf(字符) -> 获取指定字符在字符串中最后一次出现的索引位置
// 如果没有找到指定字符,返回 -1,基于这个,可以经常使用这两个方法判断字符串中是否包含某个字符
console.log(str.indexOf('!'));
console.log(str.lastIndexOf('!'));
if (str.indexOf('q') > -1) {
// 表示包含 'q' 这个字符
}
大小写转换
// 将所有字母转换成小写字母
console.log(str.toLowerCase());
// 将所有字母转换成大写字母
console.log(str.toUpperCase());
替换
// replace(要替换的老字符, 替换成的新字符);
// 在不使用正则的情况下,每一次调用方法只能替换一次
// 一般情况下,都是使用正则表达式来处理的
console.log(str.replace('!', '~~~'));
console.log(str.replace(/!/g, '~~~'));
match -> 正则常用的
案例:格式化日期
var timeString = '2017-2-25 10:15:15';
// -> 2017年02月25日 10时15分15秒
// 格式化时间字符串
function formatTime(timeStr) {
var ary = timeStr.split(' ');
var str1 = ary[0];
var str2 = ary[1];
var ary1 = str1.split('-');
var ary2 = str2.split(':');
return ary1[0] + '年' + addZero(ary1[1]) + '月' + addZero(ary1[2]) + '日 '
+ addZero(ary2[0]) + '时' + addZero(ary2[1]) + '分' + addZero(ary2[2]) + '秒';
}
function addZero(value) {
return value < 10 ? '0' + value : value;
}
console.log(formatTime(timeString));