zoukankan      html  css  js  c++  java
  • js中的string.format

    String.prototype.format = function(args) {
                var result = this;
                if (arguments.length > 0) {
                    if (arguments.length == 1 && typeof (args) == "object") {
                        for (var key in args) {
                            if (args[key] != undefined) {
                                var reg = new RegExp("({" + key + "})", "g");
                                result = result.replace(reg, args[key]);
                            }
                        }
                    }
                    else {
                        for (var i = 0; i < arguments.length; i++) {
                            if (arguments[i] != undefined) {
                                //var reg = new RegExp("({[" + i + "]})", "g");//这个在索引大于9时会有问题,谢谢何以笙箫的指出
                                var reg = new RegExp("({)" + i + "(})", "g");
                                result = result.replace(reg, arguments[i]);
                            }
                        }
                    }
                }
                return result;
            }
            String.format = function () {
                if (arguments.length == 0)
                    return null;
    
                var str = arguments[0];
                for (var i = 1; i < arguments.length; i++) {
                    var re = new RegExp('\{' + (i - 1) + '\}', 'gm');
                    str = str.replace(re, arguments[i]);
                }
                return str;
            }

    //两种调用方式
     var template1="我是{0},今年{1}了";
     var template2="我是{name},今年{age}了";
     var result1=template1.format("loogn",22);
     var result2=template2.format({name:"loogn",age:22});

     //两个结果都是"我是loogn,今年22了"

    var a = "I Love {0}, and You Love {1},Where are {0}! {4}";
    alert(String.format(a, "You","Me"));

    alert(a.format("You","Me"));

  • 相关阅读:
    公平锁与非公平锁源码对比
    内存屏障和volatile内存语义的实现
    熟悉activemq的初步试用
    springMVC中数据流解析与装载
    ubuntu工作常用命令及需要留意的点汇总
    maven相关配置
    ueditor问题
    关于layer的问题
    thymeleaf
    Node Util模块(转存)
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/6396434.html
Copyright © 2011-2022 走看看