Javascript 替换函数“不是函数”

新手上路,请多包涵

我对以下代码有疑问。我想用另一个字符串替换一个字符串,并生成一个 img 代码。但是,我收到一条错误消息: str.replace is not a function 。知道为什么吗?

     <input type="text" id="text">
    <input type="button" value="See Code" onclick="myFunction();">
    <input type="text" id="code" name="code">

<script>
    function myFunction() {
        var str = parseInt(document.getElementById("text").value);
        var res = str.replace("ftpadress", "htmladress");
        var code = str.concat("<img src='",res,"' width='100%'>");
        document.getElementById("code").value = code;
        }
</script>

原文由 Flo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 873
2 个回答

正如@mrlew 指出的那样, strparseInt 的结果,因此,它是一个数字。 replace() 是一个 string method ,所以它不能在 number 上工作。

如果我没理解错的话,您想替换一个字符串,检索一个代码,然后用新的字符串和代码生成一个图像标签。

我会和…一起去

 <input type="text" id="text" />
<input type="button" value="See Code" onclick="myFunction();">
<input type="text" id="code" name="code">

<script>
function myFunction() {
    //changed
    var str = document.getElementById("text").value; //get text
    var res = str.replace("ftpadress", "htmladress"); //replace
    var code = parseInt(str).toString(); //get code and cast it back to a string
    document.getElementById("code").value = code; //insert code
    var withTag = code.concat("<img src='", res, "' width='100%'>"); //generate tag
}
</script>

原文由 Karuhanga 发布,翻译遵循 CC BY-SA 4.0 许可协议

只需删除转换(parseInt 函数),一切都应该正常工作。

  <input type="text" id="text">
    <input type="button" value="See Code" onclick="myFunction();">
    <input type="text" id="code" name="code">

<script>
    function myFunction() {
        //changed
        var str = document.getElementById("text").value;
        console.log(str);
        var res = str.replace("ftpadress", "htmladress");
        var code = str.concat("<img src='",res,"' width='100%'>");
        document.getElementById("code").value = code;
        }
</script>

原文由 iwaduarte 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题