all files / src/Format/ index.js

0% Statements 0/43
0% Branches 0/18
0% Functions 0/8
0% Lines 0/43
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127                                                                                                                                                                                                                                                             
import {accMul} from "../Number";
 
/**
* toDecimal 保留小数点${x}位 (会四舍五入)
* @since 1.0.0
* @param {Number} x
* @param {Number} val
* @returns {Number}
*/
export function toDecimal(x,val) {
  let f = parseFloat(x);
  if (isNaN(f)) {
    return false;
  }
  f = Math.round(x*10**val)/10**val;
  let s = f.toString();
  let rs = s.indexOf('.');
  if (rs < 0) {
    rs = s.length;
    s += '.';
  }
  while (s.length <= rs + val) {
    s += '0';
  }
  return s;
}
/**
* toFloat 保留小数点${x}位 (截断)
* @since 1.0.0
* @param {Number} x
* @returns {Number}
*/
export function toFloat(x,val){
  x = parseInt(x)
  return (toDecimal(val,x+1)).toString().slice(0,-1)
}
/**
* filterZero 抹零
* @since 1.0.0
* @param {Number | String} val
* @returns {Number}
*/
export function filterZero(val){
  return parseFloat(val)
}
/**
* money 千分位
* @since 1.0.0
* @param {Number | String} val 值
* @param {Number | String} x 保留小数点位数
* @returns {String}
*/
export function money(val,x=2){
  let noNegative = true; //默认是正值。
  val=parseFloat(val+"").toFixed();
  val=val+""; //转换成字符串
  if(parseFloat(val) < 0){ //是负数
    s = Math.abs(val).toFixed(x) + "";
    noNegative = false;
  }
  let zheng=val.split(".")[0];
  let dian=val.split(".")[1];
  //将整数部分,利用字符串的charAt() 方法,转换成数组。
  let zhengArr=[];
  for(let i=0;i<zheng.length;i++){
    zhengArr.push(zheng.charAt(i));
  }
  zhengArr=zhengArr.reverse();
  let t="";
  for(let i=0;i<zhengArr.length;i++){
    if(i%3==2&&i!=zhengArr.length-1){ //为第三位,并且并不是最后了。如123456时,6并不加,
      t+=zhengArr[i]+",";
    }else{
      t+=zhengArr[i]+""; //加上空格
    }
  }
  return (noNegative?"":"-")+t.split("").reverse().join("")
    +"."+dian;
}
/**
* percent 百分比
* @since 1.0.0
* @param {Number | String} val 值
* @returns {String}
*/
export function percent(val){
  return parseFloat(accMul(val,100).toFixed(4)) + '%'
}
/**
* hidden 隐藏字段
* @since 1.0.0
* @param {String} str
* @returns {String}
*/
export function hidden(str) {
  return str ? str : '*****'
}
/**
* bankcard 格式化银行卡
* @since 1.0.0
* @param {String | Number} val
* @returns {String}
*/
export function bankcard(val) {
  return val.replace(/(.{4})/g, '$1 ')
}
/**
* plysStr 在字段中间加特殊字符
* @since 1.0.0
* @param {String} str
* @param {Number} frontLen 起始不被遮盖的长度
* @param {Number} endLen 结尾不被遮盖的长度
* @param {String} hideStr 遮盖字符
* @returns {String}
*/
export function plusStr(str, frontLen, endLen,hideStr = '*') {
  if(str.length <= 2 ){
    return str.substring(0, frontLen) + hideStr
  }
  let len = str.length - frontLen - endLen
  let hstr = ''
  for (let i = 0; i < len; i++) {
    hstr += hideStr
  }
  return str.substring(0, frontLen) + hstr + str.substring(str.length - endLen)
}