js业务常用函数
2019-08-22 本文已影响0人
新然书简
js来控制 字符串的长度!
/*
*比如传入的字符串太长了,导致显示问题:
* user_name = "爱尔奎利亚马拉西博德" ( 太长了!! )
* user_name = ellipsisText(user_name, 5)
*输出结果就是 "爱尔奎利亚..."
*/
function ellipsisText(str, num) {
if (str && str.length >= num) {
str = str.substr(0, num) + '...'
}
return str;
}
去掉年月日时分秒 里的 时分秒!
/*比如: 传入: 2018-08-08 23:49:50;
*输出 2018-08-08
*/
function filterTime(timeStr) {
// 去掉 年月日时分秒 的时分秒,只显示年月日
if (timeStr) {
timeStr = timeStr.substr(0, timeStr.indexOf(' '));
return timeStr;
} else {
return ' '
}
}
根据时间差值 输出 倒计时的格式化
/**
* 时间差 显示模式 micro_second是秒 ,如果是毫秒,自行*1000 or /1000
* 比如传入 59 (注意这里是 秒)
*输出 00:00:59
*/
function dateformat2(micro_second){
// 总秒数
var second = Math.floor(micro_second);
// 天数
var day = Math.floor(second / 3600 / 24);
// 小时
var hr = Math.floor(second / 3600 % 24);
// 分钟
var min = Math.floor(second / 60 % 60);
// 秒
var sec = Math.floor(second % 60);
hr = hr<10 ? '0'+hr : hr;
min = min<10 ? '0'+min : min;
sec = sec<10 ? '0'+sec : sec;
if (day > 0) {
return day + "天" + ' ' + hr + ":" + min + ":" + sec;
} else {
return hr + ":" + min + ":" + sec;
}
}
更加细则的判断数据类型
/**
* 数据类型判断
*比如传入 [ 1,4,8 ] 输出 array
*传入 {a:1,b:2} 输出 object
*/
function dataType(target) {
var ret = typeof(target);
var template = {
//包装类、对象、数组
"[object Number]" : "number - object",
"[object String]" : "string - object",
"[object Boolean]" : "boolean - object",
"[object Object]" : "object",
"[object Array]" : "array"
}
//找出 null
if(target === null){
return null;
}
if(ret == "object"){
var str = Object.prototype.toString.call(target);
return template[str];
}else{
//原始值 和 function
return ret;
}
}
对手机号进行中间部分加密
136 **** 2099
// 手机加密 13612343647 => 136 **** 3647
function phoneStyle2(phonestr){
phonestr = phonestr+'';
if(phonestr.length==11){
phonestr = phonestr.substring(0,3)+" **** "+phonestr.substring(7,11);
}
return phonestr;
}
手机号分隔空格
136-1111-4096
//空格展示手机号 136 2099 6666
function phoneStyle(phone) {
phone = phone + '';
if (!phone || phone.length != 11) {
return phone;
}
return phone.replace(/(?=(\d{4})+$)/g, "-");
}