资讯专栏INFORMATION COLUMN

一些有用的工具函数,如input输入小数的位数限制

LeoHsiun / 1867人阅读

摘要:限制数字且最多输入小数的位数输入的对象输入长度最后一个字符是如果符号超过一个存在符号并且不止一位数注在调用的时候需要用原生来绑定对象日期转换函数,可以根据需求来设置前几天后几天或或或或单位自动转换单位

/**
 * 限制数字且最多输入小数的位数
 * @param  {[type]} elem 输入的对象
 * @param  {[type]} len  输入长度
 * @return {[type]}      [description]
 */
function limitNumber(elem, len) {
    elem.addEventListener("input",function(e){
        var result = "";
        var val = e.target.value;
        //最后一个字符是.
        if (val[val.length - 1] === ".") {
            //如果.符号超过一个
            if (val.split(".").length > 2) {
                val = val.slice(0, -1);
            } else if (val.split(".").length === 2 && val.slice(val.indexOf("."), val.length - 1).length > 2) {
                val = val.slice(0, val.indexOf(".") + 2)
            }
        }
        //存在.符号并且不止一位数
        else if (val[val.length - 1] !== "." && val.indexOf(".") !== -1) {
            val = val.slice(0, val.indexOf(".") + (len || 2 + 1))
        }
        e.target.value = val.replace(/[^d.]/g, "");
    })
}

注:在调用的时候需要用原生来绑定对象

日期转换函数,可以根据需求来设置前几天后几天

Date.prototype.format = function(pattern) {
    function zeroize(num) {
        return num < 10 ? "0" + num : num;
    };
    var pattern = pattern; //    YYYY-MM-DD 或 MM-DD-YYYY 或 YYYY-MM-DD , hh : mm : ss
    var dateObj = {
        "Y": this.getFullYear(),
        "M": zeroize(this.getMonth() + 1),
        "D": zeroize(this.getDate()),
        "h": zeroize(this.getHours()),
        "m": zeroize(this.getMinutes()),
        "s": zeroize(this.getSeconds())
    };
    return pattern.replace(/YYYY|MM|DD|hh|mm|ss/g, function(match) {
        switch (match) {
            case "YYYY":
                return dateObj.Y;
            case "MM":
                return dateObj.M;
            case "DD":
                return dateObj.D;
            case "hh":
                return dateObj.h;
            case "mm":
                return dateObj.m;
            case "ss":
                return dateObj.s;
        };
    });
};
Date.prototype.past = function(pattern, pastDays) {
    function zeroize(num) {
        return num < 10 ? "0" + num : num;
    };
    var pastday = new Date((this - 0) - 1000 * 60 * 60 * 24 * pastDays);
    var pattern = pattern; //    YYYY-MM-DD 或 MM-DD-YYYY 或 YYYY-MM-DD , hh : mm : ss
    var dateObj = {
        "Y": pastday.getFullYear(),
        "M": zeroize(pastday.getMonth() + 1),
        "D": zeroize(pastday.getDate()),
        "h": zeroize(pastday.getHours()),
        "m": zeroize(pastday.getMinutes()),
        "s": zeroize(pastday.getSeconds())
    };
    return pattern.replace(/YYYY|MM|DD|hh|mm|ss/g, function(match) {
        switch (match) {
            case "YYYY":
                return dateObj.Y;
            case "MM":
                return dateObj.M;
            case "DD":
                return dateObj.D;
            case "hh":
                return dateObj.h;
            case "mm":
                return dateObj.m;
            case "ss":
                return dateObj.s;
        };
    });
};
Date.prototype.yestoday = function(pattern) {
    return this.past(pattern, 1);
};
Date.prototype.tomorrow = function(pattern) {
    return this.past(pattern, -1);
};

单位自动转换

function getKit(array,radix,units){
        var result = [];

        //单位转换
        function getUnit(array){
            var temp = {};
            var unit = ["byte","KB","MB","GB","TB"];

            //存储所有配置单位的最大值
            function max(){
                var str=[];
                for(var i=1;i array ){
                    temp.num=(array / Math.pow(radix,i)).toFixed(2),
                    temp.unit = unit[i];
                    break;
                }
            }
            return temp;
        }
        for(var i=0;i           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84111.html

相关文章

  • Python强大语法支持

    摘要:浮点数计算不光对整数运算提供了支持,同样对我们俗称的小数也提供了便利的运算。但要注意的一点是有些版本对于浮点数是位数限制的对比下面两张图,所以可能会出现溢出或者未知报错,在真正开发的过程中,尽量不要写这种代码否则背锅。 学习任何一种编程语言,包括但不限于C、C++、Java、Python,我...

    adie 评论0 收藏0
  • 限制input小数点及位数

    摘要:小数点限制两位小数正整数限定为正整数动态添加了内容要用事件委托方式绑定下面的事件保留至多两个小数点的数字显示效果说明适用于多种情况判断 HTML 小数点限制 两位小数: 正整数:...

    RobinTang 评论0 收藏0
  • Python——基本数据类型(模块2: time库使用)(实例3:文本进度条)

    摘要:前言本篇主要介绍基本数据类型,以文本进度条为例,介绍库的使用。 前言 本篇主要介绍基本数据类型,以文本进度条为例,介绍time库的使用。 并在最后对蟒蛇绘制的代码进...

    Jenny_Tong 评论0 收藏0
  • 限制input输入小数只能到3位或者只能输入正整数(兼容ios)

    摘要:限制输入数字只能输入正整数包括天解析事件在用户输入时触发,元素值发生变化时立即触发。加上,是为了适应苹果系统。限制输入数字只能输入小数点最多到第三位的数字解析加上括号即为分组,分组从左到右分别用来表示,每个括号为一组。 我们在做表单输入时,有时候对于有些输入比较有限制,比如输入天数必须为正整数,再比如有些特殊需求需要输入保留小数点的后面n位。那么我们如何在输入环节就限制用户的输入情况呢...

    zone 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<