美文网首页
【Javascript】js实用方法函数整理

【Javascript】js实用方法函数整理

作者: 小小少年小阿清 | 来源:发表于2019-05-10 18:02 被阅读0次

    No.1 取URL上的参数

    /**
     * 取URL上的参数
     * @param  {String} param 参数名
     * @return {String}
     */
    function getUrlParam (param) {
      const result = window.location.href.match(new RegExp('(\\?|&)' + param + '(\\[\\])?=([^&#]*)'))
      return result ? result[3] : undefined
    }
    

    No.2 动态插入 script to html

    /**
     * 动态插入 script to html
     * @param url
     * @param callback
     */
    function createScript (url, callback) {
      const oScript = document.createElement('script')
      oScript.type = 'text/javascript'
      oScript.async = true
      oScript.src = url
    
      /**
       * IE6/7/8                -- onreadystatechange
       * IE9/10                 -- onreadystatechange, onload
       * Firefox/Chrome/Opera   -- onload
       */
    
      const isIE = !-[1,] // eslint-disable-line
      if (isIE) {
        // 判断IE8及以下浏览器
        oScript.onreadystatechange = function () {
          if (this.readyState === 'loaded' || this.readyState === 'complete') {
            callback && callback()
          }
        }
      } else {
        // IE9及以上浏览器,Firefox,Chrome,Opera
        oScript.onload = function () {
          callback && callback()
        }
      }
    
      document.body.appendChild(oScript)
    }
    
    

    No.3 判断平台

    /**
     * 判断平台
     * @return {String} 平台
     */
    function detectOS () {
      const ua = navigator.userAgent.toLowerCase()
    
      if (/MicroMessenger/i.test(ua)) {
        return 'weixin'
      } else if (/iPhone|iPad|iPod|iOS/i.test(ua)) {
        return 'ios'
      } else if (/Android/i.test(ua)) {
        return 'android'
      } else {
        return 'other'
      }
    }
    

    No.4 判断是否为null或者undefined

    function isNullData (data) {
      if (data === '' || data === null || data === undefined || data === 'undefined') {
        return true
      } else {
        return false
      }
    }
    

    No.5 判断是否为数字

    function isNumber (data) {
      if (isNullData(data) || parseFloat(data).toString === 'NaN') {
        return false
      } else {
        return true
      }
    }
    

    No.6 将json对象转换成数组

    /**
     * @method 将json对象转换成数组
     * @param {*json对象} data
     */
    function jsonArrayTranform (data) {
      let list = []
      if (!isNullData(data)) {
        if (Object.prototype.toString.call(data) === '[object Array]') {
          list = data
        } else {
          list.push(data)
        }
      }
      return list
    }
    

    No.7 获取当前日期时间,并格式化

    /**
     * @method 获取当前日期时间,并格式化
     * @param fmt(如:YYYY-MM-dd hh:mm)
     */
    function nowDateFormat (fmt) {
          let date = new Date()
          let o = {
            'M+': date.getMonth() + 1, // 月份
            'd+': date.getDate(), // 日
            'h+': date.getHours(), // 小时
            'm+': date.getMinutes(), // 分
            's+': date.getSeconds(), // 秒
            'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
            S: date.getMilliseconds(), // 毫秒
          }
    
          if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
    
          for (let k in o) {
            if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
          }
          return fmt
        }
    

    No.8 比较两个日期大小

    方法调用示例:this.DateDiff('2019-11-11','2019-11-12')

    function DateDiff (sDate1, sDate2) {
      var oDate1 = new Date(sDate1)
      var oDate2 = new Date(sDate2)
      if (oDate1.getTime() > oDate2.getTime()) {
        return false
      }
      return true
    }
    

    No.9 计算俩日期间相差的天数

    方法调用示例:this.DateDiff('2019-11-11','2019-11-12')

    function DateDiff (sDate1, sDate2) {
      var dateSpan, iDays
      sDate1 = Date.parse(sDate1)
      sDate2 = Date.parse(sDate2)
      dateSpan = sDate2 - sDate1
      dateSpan = Math.abs(dateSpan)
      iDays = Math.floor(dateSpan / (24 * 3600 * 1000))
      return (iDays + 1)
    }
    

    No.10 字符串日期转Date

    let str = '2019-10-10'
    str = str.replace(/-/g, '/')
    let date = new Date(str)
    

    谢谢观看~客官慢走~


    相关文章

      网友评论

          本文标题:【Javascript】js实用方法函数整理

          本文链接:https://www.haomeiwen.com/subject/oeczoqtx.html