文档章节

Javascript字符串的格式化

路小磊
 路小磊
发布于 2014/08/15 00:36
字数 405
阅读 17705
收藏 14

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

格式化字符串

<!-- 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了"

参考:http://www.cnblogs.com/yelaiju/archive/2012/03/27/2419212.html

© 著作权归作者所有

路小磊

路小磊

粉丝 423
博文 55
码字总数 42397
作品 5
呼和浩特
程序员
私信 提问
JavaScript格式化API

我用java生成了一段js字符串,写到文件里就成了一行,在浏览器里查看源码也很不方便。 请问是否有开源API, 能像在eclipse里边一样,把这段 js进行格式化呢? 换一个思路,如果原本的js是一行的...

lping
2011/11/17
785
3
javascript console

console.log(object[, object, ...]) 在控制台输出一条消息。如果有多个参数,输出时会用空格隔开这些参数。 第一个参数可以是一个包含格式化占位符输出的字符串,例如: console.log("The %...

小编辑
2011/10/19
2.9K
12
JavaScript有用的代码片段和trick

本文内容来自知乎《有哪些短小却令人惊叹的 JavaScript 代码?》和文章《这些JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已》,同时也汇集了部分网上其它来源的内容。 浮点数取...

jenemy
09/29
0
0
FormatJs-让你的web应用程序国际化

FormatJs   FormatJS 是javascript的模块化集合,用于格式化数字, 日期和字符串以进行国际化操作。它由一组核心库组成, 这些核心库是基于 JavaScript Intl 内置和行业范围 i18n 标准的核心...

yanziNote
08/12
0
0
开发中常用的25个Javascript单行代码

下面为大家介绍我在开发中常用的30个Javascript单行代码,没有特别的顺序。 1.强制布尔值 要将变量强制转换为布尔值而不更改其值: 2.基于某个条件为对象设置属性 要使用spread运算符有条件地...

alentan
06/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

sed -i linux 批量替换命令

批量替换 /usr/local/rocketmq/conf 目录下 的 xml 里头的 ${user.home} 替换为 /usr/local/rocketmq # mkdir -p /usr/local/rocketmq/logs# cd /usr/local/rocketmq/conf && sed -i 's#${......

jxlgzwh
29分钟前
4
0
如何在嵌入式CSS中编写a:hover?

我有一种情况,我必须编写内联CSS代码,并且我想在锚点上应用悬停样式。 如何在HTML样式属性内的CSS中使用a:hover ? 例如,您不能在HTML电子邮件中可靠地使用CSS类。 #1楼 简短的答案:您不...

技术盛宴
37分钟前
4
0
一些常用工具下载

golang: https://dl.google.com/go/go1.13.5.window-amd64.zip https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz 更换版本号可以下载其他版本。...

bobby2006
43分钟前
4
0
centos使用yum安装或者更新时总是提示被PackageKit占用

centos使用yum安装或者更新时总是提示被PackageKit占用 使用yum安装或更新软件时总是提示yum被PackageKit锁定占用 Existing lock /var/run/yum.pid: another copy is running as pid 13090. ...

流麦士
49分钟前
4
0
使用CSS内容添加HTML实体

如何使用CSS content属性添加html实体? 使用这样的东西只打印  到屏幕而不是不间断的空间: .breadcrumbs a:before { content: ' ';} #1楼 更新 :PointedEars提到正确的立...

javail
52分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部