工具小函数汇总

在前端开发过程中,经常需要运用一些工具小函数来验证、格式化一些数据,获取一些参数等等,在这里整理一下。

 

数据合法性验证:

 

var legal={
	  mobile:function(data){//手机号码
	  	   var reg=/^1[3,5,8]\d{9}$/;
	  	    return reg.test(data)
	  },
	  phone:function(data){//固定电话
	  	//010-12345678、0912-1234567、(010)-12345678、(0912)1234567、(010)12345678、(0912)-1234567、01012345678、09121234567
			var reg=/^(^0\d{2}-?\d{8}$)|(^0\d{3}-?\d{7}$)|(^0\d2-?\d{8}$)|(^0\d3-?\d{7}$)$/;
	  	    return reg.test(data)
	  },
	  email:function(data){//电子邮箱
	  	    var reg=/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+(\.[a-zA-Z]{2,3})+$/;
	  	    return reg.test(data)
	  },
	  ident:function(data){//身份证
	  	    var reg=/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/;
	  	    return reg.test(data)
	  },
	  post:function(data){//邮政编码
	  	    var reg=/^\d{6}$/;
	  	    return reg.test(data)
	  },
	  ip:function(data){//ip地址
	  	    var reg=/^((([1-9]\d?)|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}(([1-9]\d?)|(1\d{2})|(2[0-4]\d)|(25[0-5]))$/;
	  	    return reg.test(data)
	  },
	  chinese:function(data){//中文
	  	    var reg= /^[\u4e00-\u9fa5]+$/;
	  	    return reg.test(data)
	  },
	  date:function(data){//日期 2012-05-14、2012/05/6、2012.5.14、20120528
	  	    var reg= /^[1-9]\d{3}([-|\/|\.])?((0\d)|([1-9])|(1[0-2]))\1(([0|1|2]\d)|([1-9])|3[0-1])$/;
	  	    return reg.test(data)
	  }
}

 

 

日期时间类:

 

 

 

var timeTool={

    formatTime:function(ms, fmt){

        var time = new Date(ms*1000);
        var o = {
            "M+": time.getMonth() + 1, //月份
            "d+": time.getDate(), //日
            "H+": time.getHours(), //小时
            "m+": time.getMinutes(), //分
            "s+": time.getSeconds(), //秒
            "q+": Math.floor((time.getMonth() + 3) / 3), //季度
            "S": time.getMilliseconds() //毫秒
        };
        if (!fmt) fmt = 'yyyy-MM-dd HH:mm:ss';
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (time.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var 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;
    },

//var time=timeFormat(new Date(),'yyyy/MM/dd HH:mm:ss')
//弹出 2017/02/04 17:48:23 (具体时间以当前时间为准)
//将代码粘贴至js在线调试 http://jsbin.com/

    getThisMonth:function(){//获取本月始末年月日
        var oneDay = 24 * 60 * 60 * 1000;
        var now = new Date(),
            nowyear = now.getFullYear(),
            nowmonth = now.getMonth() + 1;
        var startTime=nowyear+"-"+nowmonth+"-01";

        var nextmonth=nowmonth+1;
        if(nextmonth>12){
            nextmonth="01";
            var nextyear=nowyear+1;
            var endTimems= new Date(nextyear+"/01/01").getTime()-oneDay
        }else{
            var endTimems=new Date(nowyear+"/"+nextmonth+"/01").getTime()-oneDay;
        }
        var endTime=nowyear+"-"+nowmonth+"-"+new Date(endTimems).getDate()
        return {startTime,endTime}
    },
     getPreMonth(date) {
            var arr = date.split('-');
            var year = arr[0]; //获取当前日期的年份
            var month = arr[1]; //获取当前日期的月份
            var day = arr[2]; //获取当前日期的日
            var days = new Date(year, month, 0);
            days = days.getDate(); //获取当前日期中月的天数
            var year2 = year;
            var month2 = parseInt(month) - 1;
            if (month2 == 0) {//如果是1月份,则取上一年的12月份
                year2 = parseInt(year2) - 1;
                month2 = 12;
            }
            var day2 = day;
            var days2 = new Date(year2, month2, 0);
            days2 = days2.getDate();
            if (day2 > days2) {//如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30
                day2 = days2;
            }
            if (month2 < 10) {
                month2 = '0' + month2;//月份填补成2位。
            }
            var t2 = year2 + '-' + month2 + '-' + day2;
            return t2;
        }
}

 

价格格式转换:

 

var priceFormat={
    fenToYuan:function(fen){
        fen = fen ? fen : 0;
        return (parseFloat(fen) / 100).toFixed(2);
    },
    yuanToFen:function(yuan){
      yuan = yuan ? yuan : 0;
      return Math.round(yuan * 100);
   },
   priceSplit:function(price){//千分位
      price=price.toFixed(2).toString();
      var priceInt=price.split('.')[0];//获取整数部分
      var priceDecimal=price.split('.')[1].toString();//获取小数部分
      var count=Math.floor((priceInt.length-1)/3);//千分位个数
      var priceArr=priceInt.split("");
      var newArr=[];
      var newPrice="";
      for(var i=0;i<count;i++){
        for(j=0;j<3;j++){
          newArr.push(priceArr.pop());
        }
        newArr.push(',');
      }
      newArr=priceArr.concat(newArr.reverse());
      newPrice=newArr.join("")+(!priceDecimal ? "" : "."+priceDecimal);
      return newPrice
   }
}

 

 

 

字符串处理:

 

var stringTool={
    getLength:function(str) { //获得字符串实际长度,中文2,英文1
        var realLength = 0, len = str ? str.length : 0, charCode = -1;
        for (var i = 0; i < len; i++) {
            charCode = str.charCodeAt(i);
            if (charCode >= 0 && charCode <= 128) realLength += 1;
            else realLength += 2;
        }
        return realLength;
    }
}

 

 

 

浏览器信息:

 

var browser={
   getParams:function(para){
        var href=window.location.href;
        var param = href ? href.split('?')[1] : '';
        if (param && param.split('&').length > 0) {
            var opt = {};
            param.split('&').map((item)=> {
                var arr = item.split('=');
                opt[arr[0]] = arr[1];
            });
            return opt[para];
        }
        return '';
   }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值