js常用代码片段

最近会用到的一些公共js,后续会继续补充。

// json transform

// 多层级json转换为单层级json,方便直接构建表单提交

(function (wd) {
    var transform = function (oldObj, prefix, subObjOrValue, includeFunc) {
        if (subObjOrValue == null) {
            oldObj[prefix] = null;
        } else {
            if (subObjOrValue instanceof Array) {
                for (var i = 0; i < subObjOrValue.length; i++) {
                    var newPex = prefix + "[" + i + "]";
                    transform(oldObj, newPex, subObjOrValue[i], includeFunc);
                }
            } else if (typeof subObjOrValue === "object") {
                for (var name in subObjOrValue) {
                    if (subObjOrValue.hasOwnProperty(name)) {
                        var newObjPex = "";
                        if (prefix.length === 0) {
                            newObjPex = name + "";
                        } else {
                            newObjPex = prefix + "." + name;
                        }
                        transform(oldObj, newObjPex, subObjOrValue[name], includeFunc);
                    }
                }
            } else {
                if (includeFunc) {
                    oldObj[prefix] = subObjOrValue;
                } else {
                    if (typeof subObjOrValue !== "function") {
                        oldObj[prefix] = subObjOrValue;
                    }
                }
            }
        }
    }
    wd.JSON.__transformToSimple = function (jsonObj, prefix, includeFunc) {
        if (!jsonObj) {
            return null;
        }
        var obj = {};
        transform(obj, prefix || "", jsonObj, includeFunc);
        return obj;
    };
})(window);
js中 JSON转换为简单的JSON,多个层级的json,转换为只有一个层级的JSON,方便模拟表单提交。

{"a":"v-1","b":{"b-1":"v-b1","b-2":"v-b2"},"c":["v-c1","v-c2"]} 

转换为

{"a":"v-1","b.b-1":"v-b1","b.b-2":"v-b2","c[0]":"v-c1","c[1]":"v-c2"}  

 

 

// string extensions

(function () {
    var fn = String.prototype;
    fn.format = function () {
        var args = arguments;
        return this.replace(/\{(\d+)\}/g, function (m, i) {
            return args[i] || "";
        });
    }
})();

 字符串格式化   "name:{0},value:{1}".format("p0","p1") : "name:p0,value:p1"

  

// html encode or decode
(function (wd) {
    wd.__htmlEncode = function (str) {
        return ("" + str).replace(/&/g, "&amp;")
            .replace(/>/g, "&gt;")
            .replace(/</g, "&lt;")
            .replace(/ /g, "&nbsp;")
            .replace(/\'/g, "'")
            .replace(/\"/g, "&quot;");
    };
    wd.__htmlDecode = function (str) {
        return ("" + str).replace(/&amp;/g, "&")
            .replace(/&gt;/g, ">")
            .replace(/&lt;/g, "<")
            .replace(/&nbsp;/g, " ")
            .replace(/'/g, "\'")
            .replace(/&quot;/g, "\"");
    };
})(window);


html编码,把HTML中的特殊符号编码,防止干扰破坏到正常的html。 

 

posted @ 2017-04-04 13:13  玩的  阅读(166)  评论(0编辑  收藏  举报