/** *json字符串转换成json对象 */ function stringToJson(data) { return JSON.parse(data); } /** *json对象转换成json对符串 */ function jsonToString(data) { return JSON.stringify(data); } /** *map转换为json */ function mapToJson(map) { return JSON.stringify(strMapToObj(map)); } /** *json转换为map */ function jsonToMap(jsonStr) { return objToStrMap(JSON.parse(jsonStr)); } /** *map转化为对象(map所有键都是字符串,可以将其转换为对象) */ function strMapToObj(strMap) { let obj = Object.create(null); for (let [k, v] of strMap) { obj[k] = v; } return obj; } /** *对象转换为Map */ function objToStrMap(obj) { let strMap = new Map(); for (let k of Object.keys(obj)) { strMap.set(k, obj[k]); } return strMap; } //保存数据 function setData(key, data) { uni.setStorageSync(key, data); } //获取数据 function getData(key) { return uni.getStorageSync(key); } //清除数据 function removeData(key) { uni.removeStorageSync(key); } //arrayToJsonString array 转json字符串 function arrayToJsonString(array) { var json = {}; for (var i in array) { if (array[i] instanceof Array) { json[i] = {}; for (var o in array[i]) { if (array[i][o] instanceof Array) { json[i][o] = {}; for (var q in array[i][o]) { if (array[i][o][q] instanceof Array) { json[i][o][q] = {}; for (var w in array[i][o][q]) { json[i][o][q][w] = array[i][o][q][w]; } } else { json[i][o][q] = array[i][o][q]; } } } else { json[i][o] = array[i][o]; } } } else { json[i] = array[i]; } } return JSON.stringify(json); } function pad2(n) { return n < 10 ? '0' + n : n; } //获取时间ymdHis function getDate() { var date = new Date(); return date.getFullYear().toString() + pad2(date.getMonth() + 1) + pad2(date.getDate()) + pad2(date.getHours()) + pad2(date.getMinutes()) + pad2(date.getSeconds()); } //获取随机数 function randomNum(Min, Max) { var Range = Max - Min; var Rand = Math.random(); if (Math.round(Rand * Range) == 0) { return Min + 1; } else if (Math.round(Rand * Max) == Max) { index++; return Max - 1; } else { var num = Min + Math.round(Rand * Range) - 1; return num; } } //array转json对象 function arrayToJson(array) { return stringToJson(arrayToJsonString(array)); } /** * 获取随机数 */ function generateMixed(n) { var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; var res = ''; for (var i = 0; i < n; i++) { var id = Math.ceil(Math.random() * 8); res += chars[id]; } return res; } /** * 十六进制转Byte */ function stringToByte(str) { var pos = 0; var len = str.length; if (len % 2 != 0) { return null; } len /= 2; var hexA = new Array(); for (var i = 0; i < len; i++) { var s = str.substr(pos, 2); var v = parseInt(s, 16); hexA.push(v); pos += 2; } return hexA; } /** 验证身份证**/ function judgeIdcard(target) { return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(target); } /** 验证手机号**/ function judgePhone(target) { return /^1[23456789]\d{9}$/.test(target); } function judgeNoChinese(str) { return /^[a-zA-Z0-9_]{0,}$/.test(str); } /* 证件类型 index=1个人类型 index=2企业类型*/ function getIdcardType(index) { let values1 = [ { id: '101', name: '身份证(含临时身份证)' }, { id: '102', name: '护照(限外籍人士)' }, { id: '103', name: '港澳居民来往内地通行证' }, { id: '104', name: '台湾居民来往大陆通行证' }, { id: '105', name: '军官证' }, { id: '106', name: '武警警察身份证' }, { id: '199', name: '个人默认证件' } ]; let values2 = [ { id: '201', name: '统一社会信用代码证书' }, { id: '202', name: '组织机构代码证' }, { id: '203', name: '营业执照' }, { id: '204', name: '事业单位法人证书' }, { id: '205', name: '社会团体法人登记证书' }, { id: '206', name: '律师事务所执业许可证' }, { id: '299', name: '单位默认证件' } ]; return index == 1 ? values1 : values2; } /** * 获取车辆类型 */ function getCarType(num) { var _name = ''; switch (num) { case 1: _name = '一型客车'; break; case 2: _name = '二型客车'; break; case 3: _name = '三型客车'; break; case 4: _name = '四型客车'; break; case 11: _name = '一型货车'; break; case 12: _name = '二型货车'; break; case 13: _name = '三型货车'; break; case 14: _name = '四型货车'; break; case 15: _name = '五型货车'; break; case 16: _name = '六型货车'; break; default: _name = '未知' + '_' + num; break; } return _name; } /** * 替换emoji表情 */ function filterEmoji(name) { var str = name.replace( /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi, '' ); return str; } /** * 替换空格键 */ function filterSpace(name) { var str = name.replace(/\s+/g, ''); return str; } /* * 金额转换 分》元 */ function replacemoney(money) { if (money % 100 > 0) { return money / 100; } else { return money / 100 + '.00'; } } /** * OBU状态 */ function getObuStatus(index) { var statuss = [ { id: '0', name: '申请' }, { id: '1', name: '正常' }, { id: '2', name: '有签挂起' }, { id: '3', name: '无签挂起' }, { id: '4', name: '有签注销' }, { id: '5', name: '无签注销' }, { id: '6', name: '签挂失' }, { id: '7', name: '标签过期' }, { id: '8', name: '已过户' }, { id: '9', name: '预注销' } ]; var obj = statuss.filter((item) => { return item.id == index; }); return index && obj.length > 0 ? obj[0].name : ''; } /** * ETC卡状态 */ function getCardStatus(index) { var statuss = [ { id: '0', name: '申请' }, { id: '1', name: '正常' }, { id: '2', name: '有卡挂起' }, { id: '3', name: '无卡挂起' }, { id: '4', name: '有卡注销' }, { id: '5', name: '无卡注销' }, { id: '6', name: '卡挂失' }, { id: '9', name: '预注销' }, { id: '12', name: '预注销' } ]; var obj = statuss.filter((item) => { return item.id == index; }); return index && obj.length > 0 ? obj[0].name : ''; } module.exports = { getIdcardType, judgeIdcard, judgePhone, judgeNoChinese, stringToJson, //json转字符串 jsonToString, //字符串转json mapToJson, jsonToMap, strMapToObj, objToStrMap, setData, getData, removeData, arrayToJson, getDate, randomNum, generateMixed, stringToByte, filterEmoji, filterSpace, replacemoney, getCarType, getObuStatus, getCardStatus };