字符串方法一览
var str="hello world";str.charAt(1) //e 返回给定位置的字符str.charcodeAt(1) //101 返回给定位置字符的字符编码str[1] //e ie8+concat() //可以接受任意多个参数拼接成新的字符串,但不会改变原字符串slice() //截取字符串,接受一或两个参数(开始位置和结束位置),接受负值时会将负值与字符串长度相加substring() //截取字符串,接受一或两个参数(开始位置和结束位置,会将较小的参数作为起始位置),接受负值时会将负的参数转换为零substr() //截取字符串,接受一或两个参数(开始位置和截取的字符个数),接受负值时会将第一个负的参数加上字符串长度,将第二个负的参数转换为0indexOf() //可接受两个参数,要查找的子字符串和查找起点(可选),找到返回位置,找不到返回-1includes() //判断是否包含指定字符串,返回布尔值lastIndexOf() //从数组的末尾开始查找trim() //删除前置和后缀的空格 返回的是字符串的副本,原始字符串不变toLowerCase() //转小写toUpperCase() //转大写toLocaleLowerCase() //转小写,针对地区的方法toLocaleUpperCase() //转大写,针对地区的方法match() //接收一个参数,正则表达式或者RegExp对象search() //接受一个正则,返回字符串中第一个匹配项的索引,没有返回-1replace() //替换字符串。接受两个参数,第一个是一个字符串或者RegExp对象,//第二个参数是一个字符串或者函数。如果第一个参数是一个字符串,//那么只会替换第一个子字符串,要想替换所有唯一的方法就是提供一个//正则表达式,指定全局g标志//replace()方法的第二个参数也可以是一个函数function(match,...,pos,originalText){match //模式的匹配项... //正则表达式定义了多个捕获组的情况下,是第二,三...匹配项pos //模式的匹配项在字符串中的位置originalText //原始字符串}split() //分割字符串,并返回一个数组。第一个参数接受一个分隔符(可以是字符串或者RegExp对象),//可选的第二个参数用于指定返回数组的大小localeCompare() //比较两个字符串,如果字符串在字母表中应该排在字符串参数之前,返回一个负数。相等返回0,之后返回正数String.fromCharcode() //构造函数本身的静态方法,接收一个或多个字符编码,转换成字符串,与charCodeAt相反startsWith("xxx") //判断字符串是否以xxx开头,返回布尔值
比较重要的方法
1.split(字符串->数组)
split可以将字符串分割为数组
var str = "hello";var arr = str.split("");console.log(arr);

分割带空格间隔的字符串
var str = "win or go home";var arr = str.split(" ");console.log(arr);
将字符串单词反向输出
1.将字符串转换为数组
var str = "win or go home";var arr = str.split(" ");//["win","or","go","home"]
2.把里面的字符串也转换为数组
arr.forEach(item=>{var smallArr = item.split(""); //[[w,i,n],[o,r],[g,o],[h,o,m,e]]})
3.然后将里面数组内容反转,并把里面的数组打开
var newArr = [];arr.forEach(item=>{var smallArr = item.split("").reverse().join("");newArr.push(smallArr);})console.log(newArr);

4.把外面的数组打开
var result = newArr.join(" ");
2.join(数组->字符串)
join是数组的方法
/* 1.["汪峰","赵雷","房东的猫"] *//* 2. 汪峰/赵雷/房东的猫*//* allName = "汪峰/赵雷/房东的猫" */var obj = [{name:"汪峰",age:10},{name:"赵雷",age:5},{name:"房东的猫",age:6}]var newArr = obj.map(item=>{return item.name})console.log(newArr.join("/"))
3.slice截取字符串
var str = "123456";var slice_str = str.slice(0,3); //123
时间戳实现
当前时间
<p id="p"></p><script>setInterval(function () {var oDate = new Date();var hour = oDate.getHours();var minute = oDate.getMinutes();var seconds = oDate.getSeconds()function transform(params) {return params = params < 10 ? "0" + params : params;}hour = transform(hour)minute = transform(minute)seconds = transform(seconds)var sum = hour + ":" + minute + ":" + seconds;var p = document.getElementById("p")p.innerHTML = sum;}, 1000)</script>
倒计时
<p id="p"></p><script>/* 2019-09-19 09:00:00 */setInterval(function () {var oDate = new Date();var playTime = new Date("2019-09-19 09:00:00").getTime()var mill = oDate.getTime();var gapTime = playTime - mill;var seconds = Math.floor(gapTime / 1000);var hours = Math.floor(seconds / 3600)seconds = seconds % 3600;var minutes = Math.floor(seconds / 60)seconds = seconds % 60;function transform(params) {return params < 10 ? "0" + params : params;}var sum = transform(hours) + ":" + transform(minutes) + ":" + transform(seconds);document.getElementById("p").innerHTML = sum;},1000)</script>
获取当前年月日
var today = new Date();//获得当前日期var year = today.getFullYear();//获得年份var month = today.getMonth() + 1;//此方法获得的月份是从0---11,所以要加1才是当前月份var day = today.getDate();//获得当前日期var d = date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate();var h = date.getHours() < 10 ? ('0' + date.getHours()) : date.getHours()var f = date.getMinutes() < 10 ? ('0' + date.getMinutes()) : date.getMinutes()var s = date.getSeconds() < 10 ? ('0' + date.getseconds()) : date.getSeconds()
使用dayjs
const dayjs = require('dayjs');console.log(dayjs().format('YYYY-MM-DD HH:mm:ss')); // 2019-05-15 13:42:34console.log(dayjs('2018/08/08').format('YYYY-MM-DD HH:mm:ss')); // 2018-08-08 00:00:00console.log(dayjs(Date.now() - 3*24*3600*1400).format('YYYY-MM-DD HH:mm:ss')); // 2019-05-11 08:56:00
