You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Node.js将模板文件变量替换为prompt输入的自定义内容?

没问题,这事儿其实挺简单的,分两步就能搞定:先做好带变量占位符的模板文件,再修改你的JS脚本完成替换逻辑就行。

1. 制作带变量的text.txt模板文件

你可以给模板里的变量定义一个统一的占位符格式,比如用{{变量名}}这种形式,既清晰又不容易和普通文本混淆。比如你的模板内容可以写成这样:

Hello, {{name}}
这是为{{projectName}}生成的测试文件,作者是{{author}}

如果你的变量是像variable.name这种带点的结构,也可以直接写成{{variable.name}},完全不影响后续替换。

2. 修改JavaScript脚本实现变量替换

首先得说明:如果要在本地创建.php文件,你的JS脚本应该是运行在Node.js环境里的(浏览器没法直接操作本地文件)。下面我给你写个完整的示例,用Node.js的原生模块实现:

示例代码

const fs = require('fs');
const readline = require('readline');

// 创建命令行交互接口,用来模拟prompt输入
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

// 第一步:读取text.txt模板内容
fs.readFile('./text.txt', 'utf8', (readErr, templateContent) => {
  if (readErr) {
    console.error('读取模板文件出错啦:', readErr);
    rl.close();
    return;
  }

  // 第二步:获取用户输入的变量值
  rl.question('请输入name的值: ', (name) => {
    // 如果你有多个变量,可以继续添加question提问
    // rl.question('请输入projectName的值: ', (projectName) => { ... })

    // 第三步:替换模板里的变量
    // 单个变量替换
    let finalContent = templateContent.replace(/{{name}}/g, name);
    // 如果有多个变量,继续追加replace就行,比如:
    // finalContent = finalContent.replace(/{{projectName}}/g, projectName);

    // 要是变量特别多,也可以用对象批量替换,更高效:
    // const variables = { name: name, projectName: projectName };
    // finalContent = templateContent.replace(/{{(\w+)}}/g, (match, key) => variables[key] || match);

    // 第四步:写入生成.php文件
    fs.writeFile('./output.php', finalContent, 'utf8', (writeErr) => {
      if (writeErr) {
        console.error('生成文件失败:', writeErr);
      } else {
        console.log('搞定!文件已经生成啦~');
      }
      rl.close();
    });
  });
});

关键细节说明

  • 正则里的g标志是全局替换,确保模板里所有的{{name}}都会被替换,而不只是第一个。
  • 如果你的变量是variable.name这种带特殊字符的,正则要调整一下,比如用/{{variable\.name}}/g(注意点要转义),或者用批量替换的方式更省心。
  • 如果你是在Electron环境里(可以用浏览器的prompt()),那只需要把获取输入的部分换成const name = prompt('请输入name:');,其余替换和写入逻辑是一样的。

内容的提问来源于stack exchange,提问作者user5296504

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:08:34