zoukankan      html  css  js  c++  java
  • 总结一些通用的处理方法

     /**
         * 判断当前值是否为不为空的数字
         * @param {数字} num 
         */
        static isNumber(num){
            if(num == "") return false;
            if(isNaN(num) || parseFloat(num).toString() == "NaN"){
                return false
            }else{
                return true;
            }
        }
    
    
    /**
         * 为一个数字增加千分位
         * @param {*} num 
         */
        static thousandsForamt(num){
            if(!this.isNumber(num)) return num
            var res = num.toString().replace(/d+/, function (n) { // 先提取整数部分
              return n.replace(/(d)(?=(d{3})+$)/g, function ($1) {
                return $1 + ','
              })
            })
            return res
        }
    
    
    /**
         * 为所有传进来的值小数补零
         * @param {需要补0的数字} num 
         * @param {补零的个数,如果不传则默认为两位} digitNum 
         */
        static fillNumber (num, digitNum) {
          
          if (!this.isNumber(num)) {
            return num
          }
          
          var digit = ''
          var round = ''
          if (num === null || num === undefined || num === '') {
            num = 0.00
          }
          var numStr = num.toString()
          if (numStr.indexOf('.') != -1) {
            round = numStr.split('.')[0]
            digit = numStr.split('.')[1]
          } else {
            round = numStr
          }
          for (var i = digitNum - digit.length; i > 0; i--) {
            digit = digit + '0'
          }
          return round + '.' + digit
        }
    
    
    /**
         * 将数字转换为人民币并返回单位
         * @param {*} num 
         */
        static getFormatMoney(num) {
            var ret = {}
      
            if (num >= 100000000) {
              ret.num = Math.round((num / 100000000) * 100) / 100
              ret.unit = '亿元'
            } else if (num >= 10000) {
              ret.num = Math.round((num / 10000) * 100) / 100
              ret.unit = '万元'
            } else if (num > 0) {
              ret.num = num
              ret.unit = '元'
            } else if (num < 0) {
              //  负数
              var num2 = 0 - num
              if (num2 >= 100000000) {
                ret.num = 0 - Math.round((num2 / 100000000) * 100) / 100
                ret.unit = '亿元'
              } else if (num2 >= 10000) {
                ret.num = 0 - Math.round((num2 / 10000) * 100) / 100
                ret.unit = '万元'
              } else if (num2 >= 0) {
                ret.num = 0 - num
                ret.unit = '元'
              }
            } else {
              ret.num = '0'
              ret.unit = '元'
            }
            ret.num = Math.round(ret.num * 100) / 100
            return ret
          }
    
    // 下面两个一起用  可以统一单位  
    
    function getMaxNum (arr) {
      const arr2 = []
      for (let i in arr) {
        if (arr[i] == undefined) {
          arr[i] = 0
        }
        arr2.push(Math.abs(arr[i]))
      }
      var index = arr2.indexOf(Math.max.apply(null, arr2))
    
      // console.log('max=====' + arr[index])
    
      return arr2[index]
    }
    
    function getFormatMoney (num, unit) {
      var ret = {}
      // console.log(unit);
      if (num == '') {
        ret.num = 0
        ret.unit = 1
        ret.unitName = '元'
        return ret
      }
      var computenum = num
      if (num <= 0) {
        computenum = 0 - num
      }
      if (!unit || unit === 0) {
        if (computenum >= 100000000) {
          unit = 100000000
        } else if (computenum >= 10000) {
          unit = 10000
        } else {
          unit = 1
        }
        // unit = 10000; // 默认取万元
      }
      switch (unit) {
        case 10000:
          ret.num = Math.round((num / 10000) * 100) / 100
          ret.unitName = '万元'
          ret.unit = unit
          break
        case 100000000:
          ret.num = Math.round((num / 100000000) * 100) / 100
          ret.unitName = '亿元'
          ret.unit = unit
          break
        default:
          ret.num = num
          ret.unitName = '元'
          ret.unit = 1
          break
      }
      // ret.num = fillNumber(ret.num,2);
      // alert(ret.num);
    
      return ret
    }
    
    
    /**
     * 获取某年的某天是第几周
     * @param {Number} y
     * @param {Number} m
     * @param {Number} d
     * @returns {Number}
     */
    function getWeekNumber (date) {
      var year = date.getFullYear()
      var month = date.getMonth()
      var days = date.getDate()
      // 那一天是那一年中的第多少天
      for (var i = 0; i < month; i++) {
        days += getMonthDays(year, i)
      }
    
      // 那一年第一天是星期几
      var yearFirstDay = new Date(year, 0, 1).getDay() || 7
    
      var week = null
      // if (yearFirstDay == 1) {
      //   week = Math.ceil(days / yearFirstDay)
      // } else {
      //   days -= (7 - yearFirstDay + 1)
      //   week = Math.ceil(days / 7) + 1
      // }
      days -= (7 - yearFirstDay + 1)
      week = Math.ceil(days / 7) + 1
      return week
    }
    
    //  js获取一年有多少周
    function getNumOfWeeks (year) {
      var d = new Date(year, 0, 1)
      var yt = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? 366 : 365
      return Math.ceil((yt - d.getDay()) / 7.0)
    }
    
    
    
    /**
     * 对字符串进行Unicode编码
     * @param str
     * @returns {string}
     */
    function decodeStr (str) {
      var res = []
      for (var i = 0; i < str.length; i++)
        res[i] = ('00' + str.charCodeAt(i).toString(16)).slice(-4);
      return '\u' + res.join('\u')
    }
    
    /**
     * 对unicode编码格式的字符串进行解码
     * @param str
     * @returns {string}
     */
    function undecodeStr (str) {
      var result = []
      var strArr = str.split('\u') //根据 u 分割
      var len = strArr.length
      for (var i = 0; i < len; i++) {
        if (strArr[i]) {
          result.push(String.fromCharCode(parseInt(strArr[i], 16))) //16 转 10
        }
      }
      return result.join('')
    }
    
    // 判断设备
    function getDeviceType()
    {
      let sUserAgent = navigator.userAgent.toLowerCase();
      if(/ipad/i.test(sUserAgent))
        return "iPad";
      if(/iphone/i.test(sUserAgent))
        return "iPhone";
      if(/android/i.test(sUserAgent))
        return "Android";
      if(/ipod/i.test(sUserAgent))
        return "iPod";
      if(/blackberry/i.test(sUserAgent))
        return "BlackBerry";
      if(/windows phone/i.test(sUserAgent))
        return "Windows Phone";
    
      return "PC";
    }
    
    
    var new_arr = [];   
    var arr=[1,22,44,55,3,1,2,2,4];
    function uniqueArrayObj(data){
        new_arr=[];
        for(var i=0;i<data.length;i++) {  
        var items=data[i];  
        //判断元素是否存在于new_arr中,如果不存在则插入到new_ar中
        if($.inArray(items,new_arr)==-1) {  
            new_arr.push(items);  
            }  
        }
        return new_arr;
    }
    
    uniqueArrayObj(arr)
    
    
    
    
    
  • 相关阅读:
    使用Flex Bison 和LLVM编写自己的编译器[zz]
    应用开发框架讨论应用配置wxFileConfig
    交流电220V是从何而来的
    电压、电流、电阻的概念
    电路返回端,接地,大地,等势体,静电场,回路,电能
    泛型实现List(List<T>)排序
    javascript注册功能
    层(div或table)的左右滚动
    javascript正则表达式检验
    JavaScript通用类库(ZT)
  • 原文地址:https://www.cnblogs.com/ljh--/p/9553005.html
Copyright © 2011-2022 走看看