前端最实用全面的工具类方法

Posted 丁白一

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端最实用全面的工具类方法相关的知识,希望对你有一定的参考价值。

1、为什么要做这件事
我个人最近总是觉得,写前台代码都是大量的抄袭,而且每次抄袭的地方都是来自不同的项目,敲代码的时间往往小于找代码的时间;
微信小程序更加加重了前端js在编程中的分量,学好,做好总结是很有必要的;
精良消除代码的冗余;
分享是一件,众乐乐的事;

2、怎么做这件事
从大量程序中挑选出最常用的js方法汇总;
网上找出常用的方法,收集;
分成大类进行汇总;

3、主要大类

查询类(ajax请求,表单请求)

校验类(正则表达式,日期,查重)

数据转换处理类(日期类,字符串类)

加密解密类(base64)


4、现在就开始总结

 

一、查询类(ajax请求,表单请求)

ajax请求:

requestJsonRs : function(url, param, async, callback) {
        if (!param) {
            param = {}
        }
        var jsonObj = null;
        $.ajax({
            type : "post",
            dataType : "html",
            url : url,
            data : param,
            async : (async ? async : false),
            success : function(data) {
                try {
                    jsonObj = eval("(" + data + ")")
                } catch (e) {
                    jsonObj = null
                }
                if (callback) {
                    callback(jsonObj)
                }
            },
            error : function(XMLHttpRequest, textStatus, errorThrown) {
                jsonObj = {
                    rtMsg : "Ajax Request Error"
                }
            },
            timeout : 30000
        });
        return jsonObj
    }

二、校验类(正则表达式,日期,查重)

//检查手机号
function checkMobile(str) {
 var Str=document.getElementById(str).value;
 RegularExp=/^[0-9]{11}$/
 if (RegularExp.test(Str)) {
  return true;
 }
 else {
  alert("手机号格式不正确!应该为11位长度的数字!");
  return false;
 }
}

 

三、数据转换处理类(日期类,字符串类)

字符串转换为json格式:

strToJson : function(str) {
        var json = eval("(" + str + ")");
        return json
    }

表单转换为Json格式:

formToJson : function(c, b) {
        var a = {};
        if (!b) {
            $(c).find("input[name][disabled!=disabled]").each(function(d, e) {
                a[$(e).attr("name")] = $(e).val()
            });
            $(c).find("input[name][type=hidden][disabled!=disabled]").each(
                    function(d, e) {
                        a[$(e).attr("name")] = $(e).val()
                    });
            $(c).find("textarea[name][disabled!=disabled]").each(
                    function(d, e) {
                        a[$(e).attr("name")] = $(e).val()
                    });
            $(c).find("select[name][disabled!=disabled]").each(function(d, e) {
                a[$(e).attr("name")] = $(e).val()
            });
            $(c).find("input[name][type=checkbox][disabled!=disabled]").each(
                    function(d, e) {
                        if ($(e).attr("checked")) {
                            a[$(e).attr("name")] = 1
                        } else {
                            a[$(e).attr("name")] = 0
                        }
                    });
            $(c).find("input[name][type=radio][disabled!=disabled]:checked")
                    .each(function(d, e) {
                        a[$(e).attr("name")] = $(e).val()
                    });
            $(c).find("input[name][type=password][disabled!=disabled]").each(
                    function(d, e) {
                        a[$(e).attr("name")] = $(e).val()
                    })
        } else {
            $(c).find("input[name]").each(function(d, e) {
                a[$(e).attr("name")] = $(e).val()
            });
            $(c).find("input[name][type=hidden]").each(function(d, e) {
                a[$(e).attr("name")] = $(e).val()
            });
            $(c).find("textarea[name]").each(function(d, e) {
                a[$(e).attr("name")] = $(e).val()
            });
            $(c).find("select[name]").each(function(d, e) {
                a[$(e).attr("name")] = $(e).val()
            });
            $(c).find("input[name][type=checkbox]").each(function(d, e) {
                if ($(e).attr("checked")) {
                    a[$(e).attr("name")] = 1
                } else {
                    a[$(e).attr("name")] = 0
                }
            });
            $(c).find("input[name][type=radio]:checked").each(function(d, e) {
                a[$(e).attr("name")] = $(e).val()
            });
            $(c).find("input[name][type=password]").each(function(d, e) {
                a[$(e).attr("name")] = $(e).val()
            })
        }
        return a
    }

四、加密解密类(base64)

Base64位加密

明确几个概念:
//charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数

//fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。

encode64 : function(d) {
        d = strUnicode2Ansi(d);
        var b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        var a = "";
        var l, j, g = "";
        var k, h, f, e = "";
        var c = 0;
        do {
            l = d.charCodeAt(c++);
            j = d.charCodeAt(c++);
            g = d.charCodeAt(c++);
            k = l >> 2;
            h = ((l & 3) << 4) | (j >> 4);
            f = ((j & 15) << 2) | (g >> 6);
            e = g & 63;
            if (isNaN(j)) {
                f = e = 64
            } else {
                if (isNaN(g)) {
                    e = 64
                }
            }
            a = a + b.charAt(k) + b.charAt(h) + b.charAt(f) + b.charAt(e);
            l = j = g = "";
            k = h = f = e = ""
        } while (c < d.length);
        return a
    }

    function strUnicode2Ansi(g) {
        var c = g.length;
        var a = "";
        for (var d = 0; d < c; d++) {
            var f = g.charCodeAt(d);
            if (f < 0) {
                f += 65536
            }
            if (f > 127) {
                f = UnicodeToAnsi(f)
            }
            if (f > 255) {
                var b = f & 65280;
                b = b >> 8;
                var e = f & 255;
                a += String.fromCharCode(b) + String.fromCharCode(e)
            } else {
                a += String.fromCharCode(f)
            }
        }
        return a
    }

//强制把大写转换成小写

function toLowCase(){
 if(event.keyCode>=65 && event.keyCode<=90)
  event.keyCode=event.keyCode+32;
}

//将小数四舍五入
//decimalNum 为:保留小数点后几位

function roundFloat(str, decimalNum) {
    var sourceValue=document.getElementById(str).value;
 if (isNaN(sourceValue)) {
     alert("sourceValue非法字符 ");
     document.getElementById(str).value="";
  return sourceValue;
 }
 var multiplyValue=Math.pow(10,parseInt(decimalNum));
 document.getElementById(str).value=(Math.round(multiplyValue*sourceValue))/multiplyValue;
 return (Math.round(multiplyValue*sourceValue))/multiplyValue;
}

 

以上是关于前端最实用全面的工具类方法的主要内容,如果未能解决你的问题,请参考以下文章

回归 | js实用代码片段的封装与总结(持续更新中...)

译文:18个实用的JavaScript代码片段,助你快速处理日常编程任务

实用工具类的静态成员(null)生命周期

八个最实用的Java开发工具

超级实用的 Java 工具类

WPF实用小工具