本文小编为大家详细介绍“JS怎么格式化字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“JS怎么格式化字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
成都创新互联公司专业提供服务器托管德阳服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买服务器托管德阳服务,并享受7*24小时金牌售后服务。
格式化字符串
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
/** * 替换所有匹配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; }
使用方法:
//两种调用方式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 result1=template1.format("loogn",22);
//结果是"我是loogn,今年22了, lucy今年也22了"
读到这里,这篇“JS怎么格式化字符串”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。