一、金额三位分隔
function thousandBItSeparator(num) {
if (num == 0) {
return 0 + '.00';
} else {
var decimal = String(num).split('.')[1] || '';
if (/\.\d$/.test(String(num))) {
decimal = decimal.concat('0');
} else {
decimal = decimal.slice(0, 2);
}
var tempArr = [];
var revNumArr = String(num).split('.')[0].split('').reverse();
for (var i in revNumArr) {
if (i % 3 === 0 && i != 0) {
tempArr.push(',')
}
tempArr.push(revNumArr[i]);
}
var res = tempArr.reverse().join('');
return decimal ? res + '.' + decimal : res + '.00';
}
}
二、调接口
function getResponse(that, param) {
const userParam = JSON.parse(sessionStorage.userInfo);
const item = {
"branch_id": "90001",
'device_no': userParam.device_no,
'cif_no': userParam.cif_no,
'token_key': userParam.token_key,
'accessToken': userParam.accessToken,
...param
}
let _this = that;
document.getElementById('loadding').style.display = 'block';
return new Promise((resolve, reject) => {
request(item).then(function (data) {
document.getElementById('loadding').style.display = 'none';
const STATUS = data.SYS_HEAD.RET_STATUS;
const errorMes = data.SYS_HEAD.RET[0].RET_MSG;
if (STATUS == 'S') {
resolve(data.BODY)
} else if (STATUS == 'F') {
showErr(data)
}
}).catch(err => { })
})
}
function showErr(data) {
const errorMes = data.SYS_HEAD.RET[0].RET_MSG;
const code = data.SYS_HEAD.RET[0].RET_CODE;
if (isAndroid) {
if (code == '9997') {
Verification.showErrorMessag(code, null);
} else if (code == '9998') {
const msg = {};
msg.device_no = data.BODY.device_no;
msg.rtn_time = data.BODY.rtn_time;
Verification.showErrorMessag(code, JSON.stringify(msg));
} else {
Verification.showMessag(errorMes)
}
} else {
if (code == '9997') {
const msg = {};
msg.device_no = "";
msg.rtn_time = "";
msg.code = "9997";
window.webkit.messageHandlers.ShowLoginErrorToast.postMessage(msg);
} else if (code == '9998') {
const msg = {};
msg.device_no = data.BODY.device_no;
msg.rtn_time = data.BODY.rtn_time;
msg.code = "9998";
window.webkit.messageHandlers.ShowLoginErrorToast.postMessage(msg);
} else {
window.webkit.messageHandlers.ShowJsToast.postMessage(errorMes);
}
}
}
三、处理时间字符串
20191029
=> 处理成 2019-10-29
function handleDateFormat1(val) {
let y = val.substring(0, 4);
let m = val.substring(4, 6);
let d = val.substring(6, 8);
return y + '-' + m + '-' + d;
};
四、姓名掩码
两个字(李*) 三个字(李**) 四个字及以上(李***)
export const nameMask = (str, startLen, endLen) => {
let len = str.length - startLen - endLen;
let newStr = '';
for (let i = 0; i < len; i++) {
newStr += '*';
if (len > 3) { newStr = '***' }
}
newStr = str.substring(0, startLen) + newStr + str.substring(str.length - endLen);
return newStr;
}
nameMask('阿尔吉侬', 1, 0); // 阿***
nameMask('李大钊', 1, 0); // 李**
nameMask('鲁迅', 1, 0); // 鲁*
nameMask('拉美西斯二世', 1, 0); // 拉***
五、利率格式化(小数点后4位)
利率小数部分大于4位且以0结尾 只显示4位
toFixedStr = (str) => {
let [wholeNumber, decimal] = str.split('.');
// 小数不足4位,直接返回
if (decimal.length <= 4) { return str }
// 小数大于4位 先去除尾部多余的0
decimal = String(Number(`0.${decimal}`)).split('.')[1] || '0';
// 小数去除尾部0后还大于等于4位,拼接后返回
if (decimal.length >= 4) {
return `${wholeNumber}.${decimal}`
}
decimal = decimal.padEnd(4, '0');
return `${wholeNumber}.${decimal}`
}
toFixedStr('12.0'); // 12.0
toFixedStr('12.00'); // 12.00
toFixedStr('12.000000'); // 12.0000
toFixedStr('12.5400000'); // 12.5400
toFixedStr('12.0054260'); // 12.005426
六、银行卡号掩码(保留前四位及后四位)
accountMask = (acct_no) => {
return acct_no.substring(0, 4) + '***********' + acct_no.substring(acct_no.length - 4, acct_no.length);
}
this.accountMask('6635992600107689629') // 6635***********9629