gpt4 book ai didi

javascript - JS 中的字符串格式

转载 作者:行者123 更新时间:2023-11-30 17:23:30 24 4
gpt4 key购买 nike

我正在尝试在 JS 中模拟 C# string.Format()

为此,我有一个名为 string 的对象和一个名为 Format() 的函数作为参数传递,在可变参数函数中,一个字符串及其占位符以及它的值(value)观。

一个例子应该是:

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"

关于javascript - JS 中的字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24704140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com