字符串常用方法
// 所有用 单引号 双引号 反引号 抱起来的都是字符串
let str = "sdfsdfsdfsdf";
// str.length //=>字符串长度
// str[0] // => 获取索引为零的字符
// str[str.length-1] //=> 获取字符串最后一个索引
// str[10000] //=>undefined
// str.charAt([@value])/str.charCodeAt 获取指定位置的字符串/检索编码值
// @value n [number] 获取指定字符索引
console.log(str.charAt(2), str);//=>f sdfsdfsdfsdf
// substr /subString/ 都能实现字符串截取
// str.substr(n,m) 从索引 n开始截取m个字符 m不写截取到末尾
console.log(str.substr(4, 8), str);//=>dfsdfsdf sdfsdfsdfsdf
// str.substring(n,m) 从索引n开始找到索引为m处(不含m)
console.log(str.substring(2, 4), str); //=>fs sdfsdfsdfsdf
// slice(n,m) 和 substring 一样 都是找到索引为 m处 但是slice 可以支持负值作为索引
console.log(str.slice(-5, -10), str); //=> sdfsdfsdfsdf
// 验证字符是否存在
// indexof(x,y)// 获取x第一次出现位置的索引 y 是控制查找其实位置索引
// lastIndexOf(x) // 最后一次出现的序偶因位置 没有这个字符返回-1
console.log(str.indexOf('x', 0), str);//=>-1 "sdfsdfsdfsdf"
console.log(str.lastIndexOf('x'), str);//=>-1 "sdfsdfsdfsdf"
// 判断这个str字符串中是否存在 s这个字符 如果存在返回true 不存在 返回false
console.log(str.includes('s'));//=>true
// toUpperCase/ toLowerCase 字符串大小写转换
console.log(str.toUpperCase()); //=>SDFSDFSDFSDF
console.log(str.toLowerCase()); //=>sdfsdfsdfsdf
// split([分隔符]):把字符串按照指定的分隔符拆分成数组 和数组中的join对应
console.log(str.split('s'), str);//=>(5) ["", "df", "df", "df", "df"] "sdfsdfsdfsdf"
// replace(老字符,新字符) 实现字符串替换
console.log(str.replace('F', "s"));
for (const a of str) {
console.log(a.replace('s', 'F'));
}
// 实现一些常用的需求
// 时间字符串处理
let time = '2019-7-4 12:6:23';
// 方案一
// let timesty =time.replace('-','年').replace('-','月')....
// console.log(timesty);
// 方案二
let n = time.indexOf('-');
let m = time.lastIndexOf('-');
let x = time.indexOf(' ');
let y = time.indexOf(':');
let z = time.lastIndexOf(':');
let year = time.substring(0, n);
let ms = time.substring(n + 1, m);
console.log(year, ms); //其他的也可用类似的方法截取字符串
// 方案三
let nn = time.split(' ');
let k = nn[0].split('-');
let w = nn[1].split(':');
console.log(k, w);
// 方案四
// 使用正则表达式
let ent = time.split(/(?: |-|:)/g);
let c = value => value = value.length === 1 ? ('0' + value) : value;
ent[1] = c(ent[1]);
ent[2] = c(ent[2]);
console.log(ent[0] + '年' + ent[1] + '月' + ent[2] + '日');
日期对象
// 日期对象的基本操作
// 获取当前客户端本地的时间
let time = new Date()
// 获取的时间不是字符串类型而是对象类型 属于日期对象 或者说是Date这个类的实例对象
console.log(time);//=>Sun Dec 22 2019 10:57:00 GMT+0800 (中国标准时间)
console.log(typeof new Date());//=>object
console.log(typeof time);//=>object
// 标准日期对象中提供了一些属性和方法 供我们操作日期信息
// getFullYear() 获取年
// getMonth() 获取月 结果0—11 代表第一月 到十二月
// getDate()获取日
// getDay() 获取星期
// getHours() 获取小时
// getMinutes() 获取分钟
// getseconds() 获取秒
// getMilliseconds() 获取毫秒
// getTime() 获取当前日期距离 1970/1/1 00:00:00 这个日期之间的毫秒差
console.log(time.getFullYear());//=>2019
console.log(time.getMonth());//=>11
console.log(time.getDate());//=>22
console.log(time.getDay());//=>0 是周日
console.log(time.getHours());//=>11
console.log(time.getMinutes());//=>12
console.log(time.getSeconds());//=>27
console.log(time.getMilliseconds());//=>349
console.log(time.getTime());//=>1576984415195