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

如何在文本框中实现指定变量的全局替换功能?

问题:替换文本中任意位置的[first_name]变量

当前代码仅支持输入框**仅输入"[first_name]"**时替换为"John",但输入包含该变量的其他内容(如"Hello [first_name]")时,变量不会被替换,结果与输入内容一致。需要实现:无论输入内容是什么,只要包含"[first_name]",就将该变量替换为"John",其余内容保留。

  • 测试场景:输入Hello [first_name],当前输出Hello [first_name]
  • 期望输出:Hello John

现有代码

<p> Input [first_name] for variable </p>

<input id="myInput" type="text">

<button onclick="myFunction()">Enter</button>

<p id="result"></p>

<script>
function myFunction(){
    var input = document.getElementById("myInput").value;
    var myVar = "[first_name]"
    
    if (input == myVar){
        var data = document.getElementById('result').value= "John"
        document.getElementById("result").innerHTML = data;
    }
    else{
        document.getElementById("result").innerHTML = input
    }
}
</script>

解决方案

原代码的if (input == myVar)判断仅处理输入内容与变量完全相等的情况,无法匹配包含变量的其他文本。改用字符串replace()方法结合正则表达式,即可实现全局替换所有出现的[first_name]:

<p> Input [first_name] for variable </p>

<input id="myInput" type="text">

<button onclick="myFunction()">Enter</button>

<p id="result"></p>

<script>
function myFunction(){
    var input = document.getElementById("myInput").value;
    // 正则转义方括号,g表示全局替换所有匹配项
    var replacedText = input.replace(/\[first_name\]/g, "John");
    document.getElementById("result").innerHTML = replacedText;
}
</script>

关键说明

  • \[first_name\]:方括号在正则表达式中是特殊字符,需用反斜杠\转义,才能匹配字面意义的[first_name]
  • g标志:确保替换文本中所有出现的[first_name],而非仅第一个

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:23:26