实现一个只支持 %s 的sprintf

JS 实现一个简单的 sprintf
更新于: 2025-06-19 09:12:45
function sprintf(format, ...args) {
  var index = 0; // 参数索引

  // 使用正则表达式匹配 %s,并逐一替换为对应的参数
  return format.replace(/%s/g, () => {
    // console.log("index >= args.length", index >= args.length);
    if (index >= args.length) {
      throw new Error("Not enough arguments provided for sprintf");
    }
    return String(args[index++]); // 将参数转换为字符串并替换
  });
}

// 示例用法
console.log(sprintf("Hello aric")); // 输出: Hello aric
console.log(sprintf("Hello, %s!", "World")); // 输出: Hello, World!
console.log(sprintf("Name: %s, Age: %s", "Alice", 30)); // 输出: Name: Alice, Age: 30
console.log(sprintf("A %s B %s C %s", "X", "Y", "Z")); // 输出: A X B Y C Z