美文网首页
前端实用技术整理 【持续更新】

前端实用技术整理 【持续更新】

作者: 小奉不在乎 | 来源:发表于2019-10-16 14:56 被阅读0次

    JS判断上传的文件类型

    判断图片:

    if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(file.name)){
        alert("图片类型必须是.gif,jpeg,jpg,png中的一种");
        return;
    }
    

    判断Excel文档:

    
    if (!/\.(xlsx|xls|XLSX|XLS)$/.test(file.name)) {
        alert("文件类型必须是.xlsx,xls中的一种");
        return;
    }
    

    input赋值和清空:

    // 清空
    $("#idName“).val("")
    // 赋值
    $("#idName").attr("value", value);
    

    带负号保留两位小数:

    <input type="text"
           onkeyup="clearNoNum(this)"
           onblur="clearDot(obj)"
           placeholder="带负号保留两位小数">
    
    <script>
        //带负数保留两位小数
        function clearNoNum(obj) {
            obj.value = obj.value.replace(/[^\d.-]/g,""); //清除"数字"和"."和"-"以外的字符
            obj.value = obj.value.replace(/^[^-|\d]{1}/g,""); //只能以"-"和数字开头
            obj.value = obj.value.replace(/([\d.-])(-)/g,"$1"); //清除"数字"或"."或"-" 后面的"-"
            obj.value = obj.value.replace(/(-)(\.)/g,"$1"); //清除"-" 后面的"."
            obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");//只保留一个"."
            obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能输入两个小数
        }
        //如果末尾为".",则失去焦点后清除小数点
        function clearDot(obj) {
            obj.value = obj.value.replace(/\.$/g,""); //如果末尾没有数值则清除末尾的"."
        }
    </script>
    

    保留两位小数:

    <input type="text"
           onkeyup="clearNoNum(this)"
           onblur="clearDot(obj)"
           placeholder="保留两位小数">
    
    <script>
        //限制input输入保留两位小数
        function num(obj) {
            obj.value = obj.value.replace(/[^\d.]/g, ""); //只能输入两位小数
            obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字
            obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个, 清除多余的
            obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
            obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
            if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
                if(obj.value.substr(0,1) == '0' && obj.value.length == 2){
                    obj.value= parseFloat(obj.value);
                }
            }
        }
    </script>
    

    高德地图POI搜索去除数字点

    /*傻瓜式把图片链接给搞成空的*/
    .amap_lib_placeSearch_poi{
        display: none;
    }
    .selected .amap_lib_placeSearch_poi {
        display: none;
    }
    

    forEach网络请求异步转同步

    $scope.cars.forEach(function(item,index){
        setTimeout(function(){
                carService.getDriverById({"id": item.driverId}).then(function (data) {
                    if (data.code === "200"){
                        item.driverName = data.data.data.realname;
                        item.driverPhone = data.data.data.mobile;
                    }
                }, function (data) {
                    
                });
            },
            500 * index);
    })
    

    JS对Date的扩展

    /**
         *对Date的扩展,将 Date 转化为指定格式的String
         *月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
         *年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
         *例子:
         *(new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
         *(new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
         */
        Date.prototype.format = function (fmt) {
            var o = {
                "M+": this.getMonth() + 1, //月份
                "d+": this.getDate(), //日
                "h+": this.getHours(), //小时
                "m+": this.getMinutes(), //分
                "s+": this.getSeconds(), //秒
                "q+": Math.floor((this.getMonth() + 3) / 3), //季度
                "S": this.getMilliseconds() //毫秒
            };
            if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.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;
        };
    

    相关文章

      网友评论

          本文标题:前端实用技术整理 【持续更新】

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