zoukankan      html  css  js  c++  java
  • js常用工具函数

    js常用工具函数

    • (多为项目中需要,然后收集出来的,有一些根据自己项目需求做了修改,非全部原创,只为学习与记录)
      1 // 数值千分化例如1000000转化为1,000,000,其中对小数做了处理,对含小数的多位数值友好。
      2   function toThousands(num) {
      3     var num = (num || 0).toString(), result = '';
      4     let num1 = ""
      5     let num2 = ""
      6     if(num.indexOf(".") >= 0) {
      7       num1 = num.split(".")[0]
      8       num2 = num.split(".")[1]
      9       
     10     } else {
     11       num1 = num
     12       num2 = "" 
     13     }
     14     while (num1.length > 3) {
     15         result = ',' + num1.slice(-3) + result;
     16         num1 = num1.slice(0, num1.length - 3);
     17     }
     18     if (num1 && num2) { result = num1 + result + "." + num2; }
     19     else {result = num1 + result}
     20     return result;
     21   }
     22   // 复制新对象
     23   function extendCopy(p)  { 
     24     var c = {};  
     25     for (var i in p) {    
     26         c[i] = p[i];  
     27     }  
     28     return c;
     29   }
     30 
     31   const compare = property => {
     32     return function (a, b) {
     33       if(a[property] > 0){
     34         return a[property]
     35       }else {
     36         return b[property]
     37       }
     38     }
     39   }
     40   // 处理域名
     41   function geturl (){
     42     var origin = location.origin;
     43     var url = 'https://sit.tohours.com/businessplanner/';
     44     if(origin.indexOf('p.tohours.com') >= 0 || origin.indexOf('svn.tohours.com') >= 0 || origin.indexOf('sit.tohours.com') >= 0 || origin.indexOf('127.0.0.1:8020') >= 0){
     45         url = 'https://sit.tohours.com/businessplanner/';
     46     }else {
     47         url = origin + '/businessplanner/';
     48     }
     49     return url;
     50   }
     51   // 时间格式化函数2
     52   function parseTime(time, cFormat) {
     53     if (arguments.length === 0) {
     54         return null
     55     }
     56     const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
     57     let date
     58     if (typeof time === 'object') {
     59         date = time
     60     } else {
     61         if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
     62             time = parseInt(time)
     63         }
     64         if ((typeof time === 'number') && (time.toString().length === 10)) {
     65             time = time * 1000
     66         }
     67         date = new Date(time)
     68     }
     69     const formatObj = {
     70         y: date.getFullYear(),
     71         m: date.getMonth() + 1,
     72         d: date.getDate(),
     73         h: date.getHours(),
     74         i: date.getMinutes(),
     75         s: date.getSeconds(),
     76         a: date.getDay()
     77     }
     78     const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
     79     let value = formatObj[key]
     80     // Note: getDay() returns 0 on Sunday
     81     if (key === 'a') { 
     82         return ['日', '一', '二', '三', '四', '五', '六'][value ] 
     83     }
     84     if (result.length > 0 && value < 10) {
     85         value = '0' + value
     86     }
     87     return value || 0
     88     })
     89     return time_str
     90 }
     91   //时间格式化
     92   const formatTime = date => {
     93     const year = date.getFullYear()
     94     const month = date.getMonth() + 1
     95     const day = date.getDate()
     96     const hour = date.getHours()
     97     const minute = date.getMinutes()
     98     const second = date.getSeconds()
     99   
    100     return [year, month, day].map(formatNumber).join('-') 
    101     + ' ' + [hour, minute, second].map(formatNumber).join(':')
    102   }
    103   
    104   const formatNumber = n => {
    105     n = n.toString()
    106     return n[1] ? n : '0' + n
    107   }
    108   // 判断是否为number
    109   const isNumber = obj => {
    110     return !Number.isNaN(parseFloat(obj)) && Number.isFinite(Number(obj))
    111   }
    112   // 保留两位小数(只有一位小数时不补0)
    113   const getTwoPlaceNum = a => {
    114     return Math.round(a * 100) / 100
    115   } 
    116   // 保留两位小数(只有一位小数时补0)
    117   const getTwoPlaceNum2 = a => {
    118     var aNew;
    119     var re = /([0-9]+.[0-9]{2})[0-9]*/;
    120     aNew = a.replace(re,"$1");
    121     return aNew
    122   }
    123   
    124   export {
    125     toThousands,
    126     extendCopy,
    127     compare,
    128     formatTime,
    129     parseTime,
    130     isNumber,
    131     geturl,
    132     getTwoPlaceNum
    133   }
  • 相关阅读:
    HDU2027 统计元音 一点点哈希思想
    湖南工业大学第一届ACM竞赛 数字游戏 字符串处理
    湖南工业大学第一届ACM竞赛 我素故我在 DFS
    HDU3293sort
    HDU2082 找单词 母函数
    HDU1018 Big Number 斯特林公式
    湖南工业大学第一届ACM竞赛 分糖果 位操作
    UVA 357 Let Me Count The Ways
    UVA 147 Dollars
    UVA 348 Optimal Array Multiplication Sequence
  • 原文地址:https://www.cnblogs.com/sinceForever/p/12667434.html
Copyright © 2011-2022 走看看