字符串方法一览
var str="hello world";
str.charAt(1) //e 返回给定位置的字符
str.charcodeAt(1) //101 返回给定位置字符的字符编码
str[1] //e ie8+
concat() //可以接受任意多个参数拼接成新的字符串,但不会改变原字符串
slice() //截取字符串,接受一或两个参数(开始位置和结束位置),接受负值时会将负值与字符串长度相加
substring() //截取字符串,接受一或两个参数(开始位置和结束位置,会将较小的参数作为起始位置),接受负值时会将负的参数转换为零
substr() //截取字符串,接受一或两个参数(开始位置和截取的字符个数),接受负值时会将第一个负的参数加上字符串长度,将第二个负的参数转换为0
indexOf() //可接受两个参数,要查找的子字符串和查找起点(可选),找到返回位置,找不到返回-1
includes() //判断是否包含指定字符串,返回布尔值
lastIndexOf() //从数组的末尾开始查找
trim() //删除前置和后缀的空格 返回的是字符串的副本,原始字符串不变
toLowerCase() //转小写
toUpperCase() //转大写
toLocaleLowerCase() //转小写,针对地区的方法
toLocaleUpperCase() //转大写,针对地区的方法
match() //接收一个参数,正则表达式或者RegExp对象
search() //接受一个正则,返回字符串中第一个匹配项的索引,没有返回-1
replace() //替换字符串。接受两个参数,第一个是一个字符串或者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:34
console.log(dayjs('2018/08/08').format('YYYY-MM-DD HH:mm:ss')); // 2018-08-08 00:00:00
console.log(dayjs(Date.now() - 3*24*3600*1400).format('YYYY-MM-DD HH:mm:ss')); // 2019-05-11 08:56:00