<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
/*
1."{v1}你好,我是{v2},我今年{v3}岁了"; {v1:Cupid,v2:Tina,v3:18};
2.'{0}你好,我是{1},我今年{2}岁了';['Cupid', 'Tina', 18];
3.'{0}你好,我是{1},我今年{2}岁了';'Cupid', 'Tina', 18;
*/
String.prototype.format = function (obj) {
var that = this;
if (typeof obj == "object") {
for (var attr in obj) {
that = that.replace("{" + attr + "}", obj[attr]);
}
} else {
//var a = arguments;
//alert(a instanceof Array)==》false
//把参数放到数组里面 slice() 方法可从已有的数组中返回选定的元素。
var arr = [].slice.call(arguments, 1);
//调用自己
return format(str, arr);
} return that;
}
function format(str, obj) {
if (typeof obj == "object") {
for (var attr in obj) {
str = str.replace("{" + attr + "}", obj[attr]);
}
} else {
//var a = arguments;
//alert(a instanceof Array)==》false
//把参数放到数组里面 slice() 方法可从已有的数组中返回选定的元素。
var arr = [].slice.call(arguments, 1);
//调用自己
format(str, arr);
} return str;
}
var str = '{v1}你好,我是{v2},我今年{v3}岁了'; var obj = { v1: 'Cupid', v2: 'Tina', v3: 18 };
console.log(format(str, obj));// Cupid你好,我是Tina,我今年18岁了;
var ss = str.format(obj);
console.log(ss);/// Cupid你好,我是Tina,我今年18岁了; var str1 = '{0}你好,我是{1},我今年{2}岁了';
var obj1 = ['Cupid', 'Tina', 18];
console.log(format(str1, obj1));
var ss1 = str1.format(obj1);
console.log(ss1); var str2 = '{0}你好,我是{1},我今年{2}岁了';
var obj2 = "";
/*
对象:{ v1: 'Cupid', v2: 'Tina', v3: 18 }
Json:{ "v1": "Cupid", "v2": "Tina", "v3": "18" }
注意:对象和JSON的区别
*/
</script>
</body>
</html>

  

Javascript format方法的更多相关文章

  1. JavaScript - reduce方法,reduceRight方法 (Array)

    JavaScript - reduce方法 (Array) 解释:reduce() 方法接收一个函数作为累加器(accumulator),数组 中的每个值(从左到右)开始合并,最终为一个值. 语法:a ...

  2. JavaScript slice() 方法

    JavaScript slice() 方法  JavaScript Array 对象 实例 在数组中读取元素: var fruits = ["Banana", "Oran ...

  3. JavaScript toLocaleString() 方法

    JavaScript toLocaleString() 方法 JavaScript Array 对象 定义和用法 把数组转换为本地字符串. 语法 arrayObject.toLocaleString( ...

  4. 关于JavaScript lastIndexOf() 方法 w3school.com.cn写的不一定全对

    关于JavaScript lastIndexOf() 方法 w3school.com.cn的表述是 定义和用法 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的 ...

  5. VFP自定义函数StringFormat (仿.NET String.Format 方法)

    VFP仿.NET String.Format 方法 将指定字符串中的每个{x}替换为相应值,并返回文本 *-- 调用格式 StringFormat("日期{2},字符{1}",&q ...

  6. javascript一些方法兼容

    javascript一些方法兼容 标签(空格分隔): javascript 方法收集 [TOC] Object.keys 参考地址 if (!Object.keys) Object.keys = fu ...

  7. php示例代码之类似于C#中的String.Format方法

    php示例代码之类似于C#中的String.Format方法 原文来自于  http://stackoverflow.com/questions/1241177/c-string-format-equ ...

  8. 在Swift中使用JavaScript的方法和技巧

    本文作者Nate Cook是一位独立的Web及移动应用开发者,是继Mattt大神之后NSHipster的主要维护者,也是非常知名活跃的Swift博主,并且还是支持自动生成Swift在线文档的Swift ...

  9. Java中利用MessageFormat对象实现类似C# string.Format方法格式化

    我们在写C#代码的时候常常会使用到string.Format("待格式化字符串{0},{1},....",参数1,参数2,...),来格式化字符串,特别是拼接字符的时候,这种方式使 ...

随机推荐

  1. SSIS包配置动态配置数据库连接

    动态连接数据库便于维护 用SSIS包配置实现 1.控制流页签 - 右键 - 包配置 2.配置xml文件 3.指定连接属性:ServerName.UserName.Password 测试: 1.配置错误 ...

  2. linux内核设计与实现学习笔记-模块

    模块 1.概念:  如果让LINUX Kernel单独运行在一个保护区域,那么LINUX Kernel就成为了“单内核”.    LINUX Kernel是组件模式的,所谓组件模式是指:LINUX K ...

  3. hdu 2094 产生冠军

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2094 产生冠军 Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比 ...

  4. OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法

    字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 ...

  5. 26.68013 烧录方式 及iic生成

    硬件程序烧录 1)因为本产品要求将二进制代码和硬件PID/VID烧录在EEPROM,而不是使用CYPRESS推荐的在线下载方式,所以外部采用了8K的EEPROM.上电后68013A会将EEPROM中的 ...

  6. [转]log4net 使用指南

    声明:本文内容主要译自Nauman Leghari的Using log4net,亦加入了个人的一点心得(节3.1.4). 请在这里下载示例代码 1           简介 1.1          ...

  7. [rsync]——rsync文件同步和备份

    实验环境 (1) Rsync服务器:10.0.10.158 (2) Rsync客户端:10.0.10.173 Rsync服务器端的配置 1. 安装xinetd和rsync # yum install ...

  8. cnblog评价以及团队软件的部分改善

    博客评价: 1.在word2003版本里的东西复制,不能直接直接粘贴到博客发表(发生过,大部分时候可以): 2.第一次使用的时候不知道复制过来的代码都是左对齐的,(代码排版和插入图片位置不明显): 3 ...

  9. MVC5 + EF6 入门完整教程 (1)

    第0课 从0开始 ASP.NET MVC开发模式和传统的WebForm开发模式相比,增加了很多"约定". 直接讲这些 "约定" 会让人困惑,而且东西太多容易忘记 ...

  10. 基于ArcEngine的空间数据通用建库软件介绍

    最近花了点时间把之前的空间数据入库功能进行了完善,在这里做一个简单的介绍,也希望大家给提点意见和建议,我的目标是做一个好用.易用.通用.稳定的入库程序. 1.软件特点: 基于模板(方案)的数据更新   ...