项目中用到的几个工具函数

1.将手机号的中间四位替换为星号

var tel = "18766131540";
var reg = /^(\d{3})\d{4}(\d{4})$/;
tel = tel.replace(reg, "$1****$2");
console.log(tel);

2.手机号校验

export function validatemobile(mobile) {
    var myreg = /^1[34578]\d{9}$/;
    if(mobile.length==0){
      return '请输入手机号码';
    }else if(mobile.length!=11){
      return '请输入有效的手机号码';
    }else if(!myreg.test(mobile)){
      return '请输入有效的手机号码';
    }else{
      return true;
    }
}

3.名字校验

export function validateName(name) {
    let myreg =/^[\u4E00-\u9FA5A-Za-z ]{0,100}$/;

    name=trim(name);

    if (name.length == 0){
        return '请输入真实姓名';
    }else if(!myreg.test(name)){
        return '姓名只能由中文或英文组成';
    }else{
        return true;
    }
}

4.身份证号校验

export function validateIdCard(name) {
    let myreg =/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;

    name=trim(name);

    // if (name.length == 0){
    //     return '请输入身份证号';
    // }else if(!myreg.test(name)){
    //     return '请输入正确的身份证号';
    // }else{
    //     return '';
    // }
    if (name.length == 18){
        return '';
    }else{
        return '位数不对';
    }
}

5.保留两位小数,如果是整数会在后面补零,如8会在8后面补两个零,即8.00

function toDecimal(x) {
       var f = parseFloat(x);
       if (isNaN(f)) {
            return false;
        }
        var f = Math.round(x*100)/100;
        var s = f.toString();
        var rs = s.indexOf('.');
        if (rs < 0) {
            rs = s.length;
            s += '.';
         }
         while (s.length <= rs + 2) {
            s += '0';
         }
         return s;
}

6.获取月份的天数

function getCountDays() {
        var curDate = new Date();
        /* 获取当前月份 */
        var curMonth = curDate.getMonth();
       /*  生成实际的月份: 由于curMonth会比实际月份小1, 故需加1 */
       curDate.setMonth(curMonth + 1);
       /* 将日期设置为0, 这里为什么要这样设置, 我不知道原因, 这是从网上学来的 */
       curDate.setDate(0);
       /* 返回当月的天数 */
       return curDate.getDate();
}
例如,  获取当前月份(现在是3月)的总天数: 
getCountDays()       // 返回31

7.位数不够前面补零

fillZero: function(num, n){
    //return (num/Math.pow(10,length)).toFixed(length).substr(2);
    return (Array(n).join(0) + num).slice(-n);
}

8.判断当前运行的平台环境

function checkBrowser() {
  // 根据ua判断平台
  const ua = navigator.userAgent;
  const isAndroid = ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1; // android终端
  const isiOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios终端
  const isWechat = ua.indexOf('MicroMessenger') > -1; // wechat
  const isWebkit = ua.indexOf('AppleWebKit') > -1;

  if (isAndroid && !isWechat) {
    return 'android';
  }
  if (isiOS && !isWechat) {
    return 'ios';
  }
  if (isWechat) {
    return 'wechat';
  }
  if (isWebkit) {
    return 'webkit';
  }
  return ua;
}

9.获取#前面的所有url

function getUrl() {
  const str = window.location.href
  const hashIndex = str.indexOf('#')
  if (hashIndex > -1) {
    return str.substring(0, hashIndex)
  } else {
    return str
  }
}

10.通过url获取token

export function getTokenByUrl() {
  // 防止url不符合规定
  try {
    const hashStr = window.location.hash;
    const paramIndex = hashStr.indexOf('?');
    const paramStr = hashStr.substr(paramIndex + 1);
    return paramStr.split('=')[1];
  } catch (error) {
    console.log(error);
    return '';
  }
}

未完待续。。。。。。

posted @ 2017-08-23 12:34  终身学习者  阅读(286)  评论(0编辑  收藏  举报