字符串.JS格式
string.Format in JS
我正在尝试在JS中模拟c# string.Format()
。
为此,我有一个名为string
的对象和一个名为Format()
的函数作为参数传递,在可变函数中,一个带有占位符及其值的字符串。
一个例子应该是:
string.Format("{0} - {1}", "Hello", "World");
必须返回Hello - World
。
虽然,它给我的只是"{undefined} - {undefined}"。我正在使用全局修饰符来获取所有,但它不起作用。
var string = {
Format: function() {
var text = arguments[0];
for (i = 1; i < arguments.length; i++) {
var result = text.replace(/([0-9]+)/g, arguments["$1"]);
}
console.log(result);
}
}
我的错误在哪里?
你总是从初始字符串开始(忽略之前的替换),并且你的函数的某些部分不清楚它应该如何工作。
这是一个基于你的总体想法的工作实现:
var string = {
Format: function() {
var args = arguments,
result = args[0].replace(/([0-9]+)/g, function(s) { return args[+s+1] });
console.log(result);
return result;
}
}
记录"{Hello} - {World}"
现在,假设你不想保留大括号,你也想确保你只替换大括号之间的数字,你可以这样做(不需要调试日志):
var string = {
Format: function() {
var args = arguments;
return args[0].replace(/{([0-9]+)}/g, function(s) {
return args[+s.slice(1,-1)+1]
});
}
}
返回"Hello - World"
相关文章:
- Datetime格式为Friendly Time.Moment JS输出错误
- moment.js在两个时区格式的日期之间存在差异
- 在fabric.js中以PNG格式下载Canvas,给出网络错误
- Mustache.js lambdas和数字格式设置为Fixed
- 不支持Three.js FBX二进制格式
- moment.js年份/数字格式,阿拉伯语言环境
- d3pie.js格式的值显示
- 如何使用chart.js导出Excel和PDF格式的图表
- '的文件格式和扩展名;file.xls'don't与fileSaver.js匹配
- D3.js轴刻度条件格式
- 如何使用moment.js将秒转换为时间格式(YYYY:MM:DD HH:MM:ss)
- 如何让应用程序帮助程序方法在发送的请求为 JS 格式时工作
- 使用angular-moment.js设置日期格式
- 如何在 js 中访问不同的日期格式
- Moment.js格式差异
- 如何将timbre.js缓冲区导出为.wav或任何其他音频文件格式
- 如何使js成为通过ajax提交的rails表单的格式
- 如何在sails.js中更改属性模型中的日期格式
- 格式.js不执行 (AJAX)
- 格式js的Rails代码不工作