yanxxit-reskit
Version:
197 lines (178 loc) • 4.96 kB
JavaScript
/**
* 通用功能
*/
;
var moment = require('moment');
var _ = require("underscore")._;
var CommonUtil = {};
/**
* 校验手机号码
* 13、14、15、18开头的手机号码
* @param mobile
* @returns {boolean}
*/
CommonUtil.isMobile = (mobile) => {
var t = /^[1][123456789]\d{9}$/;
if (!t.test(mobile)) {
return false;
}
return true;
};
/**
* 是否固话
* @param telephone
* @returns {boolean}
*/
CommonUtil.isTelephone = (telephone) => {
var t = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
return t.test(telephone);
};
/**
* 是否为设备号
* 1. 设备号包括 手机固话,宽带
* @param deviceno
* @returns {boolean}
*/
CommonUtil.isDeviceno = (deviceno) => {
if (CommonUtil.isMobile(deviceno)) {
return true;
} else if (CommonUtil.isTelephone(deviceno)) {
return true;
} else {
var t = /^[A-Z]{2}[0-9]{8,10}$/;
return t.test(deviceno)
}
};
CommonUtil.isShdxDeviceno = (deviceno) => {
if (CommonUtil.isDeviceno(deviceno)) {
if (deviceno.length == 8) {
let t = deviceno.substr(0, 1);
if (t == 2 || t == 3 || t == 5 || t == 6) {
return true;
} else {
return false;
}
} else if (deviceno.length == 12) {
let m = deviceno.substr(0, 2)
let n = deviceno.substr(2, 10)
if (m == "AD" || m == "KD" || m == "LN" || m == "FH") {
return true;
} else {
return false;
}
} else if (deviceno.length == 10) {
return false;
}
} else {
return false;
}
}
/**
* 校验openID
* @param openid
* @returns {boolean}
*/
CommonUtil.isOpenid = (openid) => {
return (!_.isEmpty(openid) && openid.length == 28) ? true : false;
};
/**
* 检查输入的URL地址是否正确
* 输入:str 字符串
* 返回:true 或 flase; true表示格式正确
*/
CommonUtil.isURL = (str) => {
if (str.match(/(http[s]?|ftp):\/\/[^\/\.]+?\..+\w$/i) == null) {
return false
} else {
return true;
}
};
/**
* 检查输入的身份证号是否正确
* 输入:str 字符串
* 返回:true 或 flase; true表示格式正确
*/
CommonUtil.isIdCard = (str) => {
//15位数身份证正则表达式
var arg1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//18位数身份证正则表达式
var arg2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$/;
if (str.match(arg1) == null && str.match(arg2) == null) {
return false;
} else {
return true;
}
};
/**用途:校验ip地址的格式
输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
**/
CommonUtil.isIP = (strIP) => {
if (isNull(strIP)) return false;
var re = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正则表达式
if (re.test(strIP)) {
if (RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256) return true;
}
return false;
};
/*
用途:检查输入对象的值是否符合E-Mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
CommonUtil.isEmail = (str) => {
var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
return myReg.test(str) ? true : false;
};
/**
* 用途:转换时间戳
* 输入:YYYYMMDDHHmmss
*/
CommonUtil.transTimesTamp = (s) => {
var formatTime = s.substring(0, 4) + '-' + s.substring(4, 6) + '-' + s.substring(6, 8) + ' ' + s.substring(8, 10) + ':' + s.substring(10, 12) + ':' + s.substring(12, 14);
var TimesTamp = Date.parse(new Date(formatTime)); //单位毫秒
//return moment(TimesTamp).format('YYYY-MM-DD HH:mm:ss');
return TimesTamp / 1000;
};
/**
* 数组去重
* @param item
* @param key
* @returns {Array}
*/
CommonUtil.uniqArray = (item, key) => {
var resList = [],
hash = {},
index = {};
for (var i = 0; i < item.length; i++) {
var emit = item[i][key];
if (!hash[emit]) {
resList.push(item[i]);
hash[emit] = true;
index[emit] = resList.length - 1;
}
}
return resList
};
/**
* 格式设备号
* 中间加4个*
*/
CommonUtil.formatNumber = (number) => {
return number.substring(0, 3) + '****' + number.substring(7)
};
/**
* 格式化名字
* 王*
*/
CommonUtil.formatName = (name) => {
var CustName = name.substring(0, 1);
for (var i = 0; i < name.length - 1; i++) {
CustName += "*";
}
if (CustName.length > 5) {
CustName = CustName.substr(0, 5);
}
return CustName;
}
module.exports = CommonUtil;