• Javascript字符串的格式化


    格式化字符串

    <!-- lang: js -->
    String.prototype.format = function(args) {
        var result = this;
        if (arguments.length < 1) {
            return result;
        }
    
        var data = arguments;       //如果模板参数是数组
        if (arguments.length == 1 && typeof (args) == "object") {
            //如果模板参数是对象
            data = args;
        }
        for (var key in data) {
            var value = data[key];
            if (undefined != value) {
                result = result.replace("{" + key + "}", value);
            }
    }
        return result;
    }
    

      

    版本2

    <!-- lang: js -->
    /**
     * 替换所有匹配exp的字符串为指定字符串
     * @param exp 被替换部分的正则
     * @param newStr 替换成的字符串
     */
    String.prototype.replaceAll = function (exp, newStr) {
        return this.replace(new RegExp(exp, "gm"), newStr);
    };
    
    /**
     * 原型:字符串格式化
     * @param args 格式化参数值
     */
    String.prototype.format = function(args) {
        var result = this;
        if (arguments.length < 1) {
            return result;
        }
    
        var data = arguments; // 如果模板参数是数组
        if (arguments.length == 1 && typeof (args) == "object") {
            // 如果模板参数是对象
            data = args;
        }
        for ( var key in data) {
            var value = data[key];
            if (undefined != value) {
                result = result.replaceAll("\{" + key + "\}", value);
            }
        }
        return result;
    }
    

      

    使用方法:

    <!-- lang: js -->
    //两种调用方式
    var template1="我是{0},今年{1}了";
    var result1=template1.format("loogn",22);
    
    var template2="我是{name},今年{age}了";
    var result2=template2.format({name:"loogn",age:22});
    
    //两个结果都是"我是loogn,今年22了"
    

      

    对于版本2使用了正则表达式(replaceaAll),意味着当文本中出现多个替换位时,都可以被替换。

    <!-- lang: js -->
    var template1="我是{0},今年{1}了, lucy今年也{1}了";
    var result1=template1.format("loogn",22);
    
    //结果是"我是loogn,今年22了, lucy今年也22了"
    

      

  • 相关阅读:
    POJ 1953 World Cup Noise
    POJ 1995 Raising Modulo Numbers (快速幂取余)
    poj 1256 Anagram
    POJ 1218 THE DRUNK JAILER
    POJ 1316 Self Numbers
    POJ 1663 Number Steps
    POJ 1664 放苹果
    如何查看DIV被设置什么CSS样式
    独行DIV自适应宽度布局CSS实例与扩大应用范围
    python 从入门到精通教程一:[1]Hello,world!
  • 原文地址:https://www.cnblogs.com/espcms/p/5030970.html
Copyright © 2020-2023  润新知