js中的string.format函数代码

 更新时间:2023年06月19日 18:38:07   投稿:mdxy-dxy  
js中的string.format函数代码,学习js的朋友可以参考下。

第一种方法:

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 a = "我喜欢吃{0},也喜欢吃{1},但是最喜欢的还是{0},偶尔再买点{2}";
// alert(String.format(a, "苹果","香蕉","香梨"));
// 结果:我喜欢吃苹果,也喜欢吃香蕉,但是最喜欢的还是苹果,偶尔再买点香梨

第二种方法:

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");
                    result = result.replace(reg, arguments[i]);
                }
            }
        }
    }
    return result;
}
//两种调用方式
 var template1="我是{0},今年{1}了";
 var template2="我是{name},今年{age}了";
 var result1=template1.format("loogn",22);
 var result2=template2.format({name:"loogn",age:22});
 //两个结果都是"我是loogn,今年22了"

第三中方法:

function stringFormat() {
         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;
     } 
 StringFormat("&Type={0}&Ro={1}&lPlan={2}&Plan={3}&={4}&Id={5}&Id={6}", data1, data2, data3,data4, data5,data6,data7);

最后一种方法:相信做前端开发的朋友都受过这个折磨:连接HTML的时候被可恶的单引号、双引号搞得头昏脑胀。比如:

element.innerHTML = ‘<a href=”‘ + url + ‘” οnclick=”alert(\” + msg + ‘\’);”>’ + text + ‘</a>’;

这里介绍一个字符串格式化函数:

String.format = function(str) {
var args = arguments, re = new RegExp("%([1-" + args.length + "])", "g");
return String(str).replace(
re,
function($1, $2) {
return args[$2];
}
);
};

调用方法很简单: element.innerHTML = String.format('<a href=”%1″ οnclick=”alert(\’%2\’);”>%3</a>', url, msg, text);

意思就是用第n个参数把%n替换掉。这样一来清晰多了吧。

源于C#中的string.Format()

String.prototype.format = function(args) {
  if (arguments.length > 0) {
    var result = this;
    if (arguments.length == 1 && typeof(args) == "object") {
      for (var key in args) {
        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) {
          return "";
        } else {
          var reg = new RegExp("({[" + i + "]})", "g");
          result = result.replace(reg, arguments[i]);
        }
      }
    }
    return result;
  } else {
    return this;
  }
}

例:

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

下面分享一个作为字符串扩展的写法

String.format = function() {
  for (var a = arguments[0], b = 1; b < arguments.length; b++) a = a.replace(RegExp("\\{" + (b - 1) + "\\}", "ig"), arguments[b]);
  return a
};

以上就是js中的string.format函数代码的详细内容,更多关于js中的string.format的资料请关注脚本之家其它相关文章!

相关文章

  • JavaScript 动态生成方法的例子

    JavaScript 动态生成方法的例子

    动态生成方法的例子,这些方法在新对象实例化的时候创建
    2009-07-07
  • 微信小程序新手教程之启动页的重要性

    微信小程序新手教程之启动页的重要性

    这篇文章主要给大家介绍了关于微信小程序新手教程之启动页重要性的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • JS+CSS实现电子商务网站导航模板效果代码

    JS+CSS实现电子商务网站导航模板效果代码

    这篇文章主要介绍了JS+CSS实现电子商务网站导航模板效果代码,涉及JavaScript结合css动态操作页面元素属性的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-09-09
  • JavaScript实现文件的拖拽上传功能

    JavaScript实现文件的拖拽上传功能

    文件上传,可以说是我们在项目中最常用的功能之一,文件上传一般有两种形式:点击上传和拖拽上传,而上传的内容,又大体包括:文件和文件夹,本文给大家介绍了JavaScript实现文件的拖拽上传功能的方法,需要的朋友可以参考下
    2024-02-02
  • JavaScript中的普通函数与构造函数比较

    JavaScript中的普通函数与构造函数比较

    这篇文章主要介绍了JavaScript中的普通函数与构造函数比较,需要的朋友可以参考下
    2015-04-04
  • 原生JS实现简单的轮播图效果

    原生JS实现简单的轮播图效果

    这篇文章主要为大家详细介绍了原生JS实现简单的轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 弱类型语言javascript中 a,b 的运算实例小结

    弱类型语言javascript中 a,b 的运算实例小结

    这篇文章主要介绍了弱类型语言javascript中 a,b 的运算,结合实例形式总结分析了js闭包函数中布尔值与字符串的a,b运算相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • 小程序开发 page-container 页面容器弹出对话框功能的实现

    小程序开发 page-container 页面容器弹出对话框功能的实现

    这篇文章主要介绍了小程序开发 page-container 页面容器,弹出对话框,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • TypeScript入门-接口

    TypeScript入门-接口

    在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。本文将详细介绍TypeScript接口的相关知识。
    2017-03-03
  • JavaScript使用DeviceOne开发实战(一) 配置和起步

    JavaScript使用DeviceOne开发实战(一) 配置和起步

    这篇文章主要介绍了JavaScript使用DeviceOne开发实战(一) 配置和起步的相关资料,需要的朋友可以参考下
    2015-12-12

最新评论