热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JS格式化字符串

格式化字符串String.prototype.formatfunction(args){varresultthis;if(arguments.len

格式化字符串

<!-- 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),意味着当文本中出现多个替换位时,都可以被替换。 var template1=“我是{0},今年{1}了, lucy今年也{1}了”; var

//结果是"我是loogn,今年22了, lucy今年也22了"

推荐阅读
  • 在现代Web开发中,HTML5 Canvas常用于图像处理和绘图任务。本文将详细介绍如何将Canvas中的图像导出并上传至服务器,适用于拼图、图片编辑等场景。 ... [详细]
  • 本文介绍了使用PHP Imagick扩展进行图片合成的两种方法,包括`compositeimages`和`combineimages`函数的详细用法及其参数说明。 ... [详细]
  • pypy 真的能让 Python 比 C 还快么?
    作者:肖恩顿来源:游戏不存在最近“pypy为什么能让python比c还快”刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了解pypy的真相。正式开始之前,多唠叨两句 ... [详细]
  • 本文详细介绍了TypeScript中的各种数据类型,包括基本类型、数组、元组、枚举、any、void、never以及类型断言,并提供了示例代码及其编译结果。 ... [详细]
  • 本打算教一步步实现koa-router,因为要解释的太多了,所以先简化成mini版本,从实现部分功能到阅读源码,希望能让你好理解一些。希望你之前有读过koa源码,没有的话,给你链接 ... [详细]
  • 本文详细介绍了 JavaScript 中面向对象编程的基本概念,包括对象的创建、工厂模式、构造函数、原型及其优缺点,并探讨了继承的多种实现方式。 ... [详细]
  • URL参数格式http:localhos:8080demo?ab&cd&ef匹配参数a对应的表达式为^a([^&]*)&匹配参数b对应的表达式为&b([^&]*)&匹配参数c对应 ... [详细]
  • 驱动程序的基本结构1、Windows驱动程序中重要的数据结构1.1、驱动对象(DRIVER_OBJECT)每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱 ... [详细]
  • Linux中tput命令怎么用
    这篇文章主要介绍Linux中tput命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux常用命令tput命令将通过ter ... [详细]
  • 本文介绍如何在Element UI的时间选择器中设置7天的时间跨度,包括代码示例和详细解释。 ... [详细]
  • 本文将详细介绍如何使用PHP获取文件夹的大小,包括子文件夹的大小,并提供实用的代码示例。 ... [详细]
  • CoreData 表关联详解
    在企业中,通常会有多个部门,每个员工隶属于某个部门。这种情况下,员工表和部门表之间就会形成关联关系。本文将详细介绍如何在CoreData中实现表关联,并通过示例代码展示如何添加和查询关联数据。 ... [详细]
  • 编写SharePoint的EventReceiver需要用到ListTemplateID来进行绑定,下面的列表对于编程和排查错误都是个很好的索引.Listtem ... [详细]
  • MySQL 5.7 服务端在 Windows 上的安装与配置
    本文详细介绍了在 Windows 系统上安装和配置 MySQL 5.7 服务端的方法,包括 my.ini 配置文件的设置、初始化数据库、启动服务以及设置用户权限等步骤。 ... [详细]
  • 2023年最新指南:如何在PHP中屏蔽警告和错误
    本文详细介绍了如何在PHP中屏蔽警告和错误,包括多种方法和最佳实践,帮助开发者提升代码质量和安全性。 ... [详细]
author-avatar
流浪者时空
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有