• JS/JQUERY函数库


    1. 判断字符串是否为空

    function isEmptyString(str) {
        return str == undefined || str == "" || str == null;
    }
    View Code

    2. 判断数据格式

    2.1 判断是否邮箱格式

    function isEmail(str) {
        var re = new RegExp("^[a-z0-9]+([._\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$");
        return re.test(str);
    }
    View Code

    2.2 判断是否整数格式

    function isInt(str) {
        var re = new RegExp("^-?[0-9]+$");
        return re.test(str);
    }
    View Code

    2.3 判断是否浮点数字格式

    function isFloat(str) {
        var re = new RegExp("^-?[0-9]+.[0-9]+$");
        return re.test(str);
    }
    View Code

    3. 获取object中属性的值

    function getObjectData(object, field) {
        var fieldArray = field.split(".");
        var childObj = object;
        $.each(fieldArray, function(i, n) {
            childObj = childObj[n];
        })
        return childObj;
    }
    View Code

    例如:

    var test = {a:"aaa",b:{c:"ccc",d:{e:"eee",f:"fff"}}};

    var testResult = getObjectData(test,"a.b.d.f");

    获得到的testResult的值为"fff"。

    4. 扩展日期类型,增加格式化功能

    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;
    }
    View Code

    5. 设定整个页面的keyPress事件响应

    function setGloableKeyPress(keyCode, onKeyPress) {
        document.onkeydown = function(e) {
            var ev = document.all ? window.event : e;
            if (ev.keyCode == keyCode) {
                onKeyPress();
            }
        }
    }
    View Code

    6. form表单功能扩展

    6.1 表单输入元素中回车响应

    $.fn.formAutoSearch = function(onSearch) {
        var id = $(this).attr("id");
        $("#" + id + " :input").not(':button, :submit, :reset').keypress(function(e) {
            if (e.keyCode == 13) {
                onSearch();
            }
        })
    }
    View Code

    6.2 检测表单输入合法性(需要html元素属性支持)

    $.fn.formCheck = function(funMsg) {
        var rtn = true;
    
        var id = $(this).attr("id");
        var inputs = $("#" + id + " :input").not(':button, :submit, :reset');
        $.each(inputs, function(i, n) {
            var caption = $(this).attr("caption");
    
            var maxLength = $(this).attr("maxlength");
            if (isEmptyString(maxLength) == false) {
                var val = "";
                if ($(this).is("input")) {
                    val = $(this).val();
                } else if ($(this).is("textarea")) {
                    val = $(this).html();
                }
                if (val.length > parseInt(maxLength)) {
                    if (funMsg != undefined) {
                        funMsg(caption + "输入长度超过限制");
                    }
                    rtn = false;
                }
            }
            var notNull = $(this).attr("notnull");
            if (notNull == "true") {
                var val = "";
                if ($(this).is("input")) {
                    val = $(this).val();
                } else if ($(this).is("textarea")) {
                    val = $(this).html;
                } else if ($(this).is("select")) {
                    val = $(this).val();
                }
                if (val.length == 0) {
                    if (funMsg != undefined) {
                        funMsg("请填写" + caption);
                    }
                    rtn = false;
                }
            }
            var chkEmail = $(this).attr("isemail");
            if (chkEmail == "true") {
                var val = "";
                if ($(this).is("input")) {
                    val = $(this).val();
                } else if ($(this).is("textarea")) {
                    val = $(this).html;
                }
                if (isEmail(val) == false) {
                    if (funMsg != undefined) {
                        funMsg("您填写的" + caption + "不是有效的邮箱格式,请重新填写");
                    }
                    rtn = false;
                }
            }
            var chkNum = $(this).attr("isint");
            if (chkNum == "true") {
                val = $(this).val();
                if (isInt(val) == false) {
                    if (funMsg != undefined) {
                        funMsg("您填写的" + caption + "不是有效的数字格式,请重新填写");
                    }
                    rtn = false;
                }
            }
            var chkFloat = $(this).attr("isfloat");
            if (chkFloat == "true") {
                val = $(this).val();
                if (isFloat(val) == false) {
                    if (funMsg != undefined) {
                        funMsg("您填写的" + caption + "不是有效的数字格式,请重新填写");
                    }
                    rtn = false;
                }
            }
        });
        return rtn;
    }
    View Code

    6.3 清除表单

    $.fn.formClear = function() {
        var id = $(this).attr("id");
        var inputs = $("#" + id + " :input").not(':button, :submit, :reset');
        $.each(inputs, function(i, n) {
            if ($(this).is("input")) {
                if ($(this).attr("type") == "text" || $(this).attr("type") == "hidden" || $(this).attr("type") == undefined) {
                    $(this).val("");
                } else if ($(this).attr("type") == "checkbox") {
                    $(this).prop("checked", false);
                } else if ($(this).attr("type") == "radio") {
                    $(this).prop("checked", false);
                } else if ($(this).attr("type") == "password") {
                    $(this).val("");
                }
            } else if ($(this).is("textarea")) {
                $(this).html("");
            } else if ($(this).is("select")) {
                var nid = $(this).attr("id");
                $("#" + nid + " option:first").attr("selected", "selected");
            }
        })
    }
    View Code

    6.4 填充表单

    $.fn.formFill = function(data) {
        var id = $(this).attr("id");
        var inputs = $("#" + id + " :input").not(':button, :submit, :reset');
        $.each(inputs, function(i, n) {
            var attr = $(this).attr("name");
            var valStr = getObjectData(data, attr);
            if (valStr == null || valStr == undefined) {
                valStr = "";
            } else {
                valStr = valStr.toString();
            }
            if ($(this).is("input")) {
                if ($(this).attr("type") == "text" || $(this).attr("type") == "hidden" || $(this).attr("type") == undefined) {
                    $(this).val(valStr);
                } else if ($(this).attr("type") == "checkbox") {
                    $(this).prop("checked", valStr);
                } else if ($(this).attr("type") == "radio") {
                    $(this).prop("checked", valStr);
                } else if ($(this).attr("type") == "password") {
                    $(this).val(valStr);
                }
            } else if ($(this).is("textarea")) {
                $(this).html(valStr);
            } else if ($(this).is("select")) {
                $(this).val(valStr);
            }
        })
    }
    View Code

    7. css中px的数值操作

    7.1 获取css中px的数值

    $.fn.getCssPx = function(cssProp) {
        var cssStr = $(this).css(cssProp);
        cssStr = cssStr.substr(0, cssStr.length - 2);
        return parseInt(cssStr);
    }
    View Code

    7.2 设定css中px的数值

    $.fn.setCssPx = function(cssProp, value) {
        $(this).css(cssProp, value + "px");
    }
    View Code

    8. 未完待续

  • 相关阅读:
    在线预览Office文档
    花生壳内网穿透
    Net core跨域
    EF链表查询
    Python冒泡排序、选择排序、插入排序、希尔排序、归并排序
    竟然可以这样学python!
    如何使用python打印9乘9乘法口诀表?
    python爬取小视频
    —用python写PDF转换器
    从0到1搭建个人博客-Django(三)
  • 原文地址:https://www.cnblogs.com/LOVE0612/p/5900391.html
Copyright © 2020-2023  润新知