用另一个字符串javascript替换字符串的一部分

Replace part of a string with another string javascript

本文关键字:字符串 一部分 替换 javascript 另一个      更新时间:2023-09-26

我有3个文本框。第一个是用户输入字符串。在第二个框中,他们输入他们想要替换的第一个字符串的一部分。第三个文本框是要进行替换的字符串。

我正在尝试使用replace()方法,但我不认为我使用它是正确的,或者我应该使用其他东西。

html:

        <form>
            Enter a string:<input type="text" id="user_string"><br>
            Enter portion of previous string to be replaced: <input type="text" id="replace_string"><br>
            Enter new string: <input type="text" id="add_string"><br>
            <input type="button" value="Execute" onclick="BaitAndSwitch()"><br>
            Result: <input type="text" id="req_4_results"><br>
        </form>
Javascript:

function BaitAndSwitch(){
    // create variables for the user entered data
    var UserString = document.getElementById("user_string").value;
    var ReplaceString = document.getElementById("replace_string").value;
    var AddString = document.getElementById("add_string").value;
    var Results = UserString.replace(ReplaceString, Addstring);
    if (UserString.indexOf(ReplaceString) > -1) {
        Document.getElementById("req_4_results").value = Results;
    }
    else{
        alert("Something went wrong! Please check the data you entered.")
    }
}
我知道我做错了什么。也许在.replace()方法中使用变量?或者如果……使用indexOf行?

我基本上试图设置它,它将检查UserString与ReplaceString的值,如果它匹配,它将执行replace()方法,并显示结果给给定的HTML元素。否则,如果ReplaceString不匹配UserString中的任何内容,它将警告用户有错误并检查它。

JavaScript区分大小写。请注意,Documentdocument对象不同。请使用下面一行:

document.getElementById("req_4_results").value = Results;

哦,是的,正如blex指出的,你还有另一个打字错误:

var Results = UserString.replace(ReplaceString, Addstring);
//-------------------------------------------------^ should be S

更多信息:在控制台中,如果您同时尝试,查看您得到的结果:

typeof Document
// "function"
typeof document
// "object"

另外,请不要使用这样的命名约定。

注意,replace()方法不会修改调用它的字符串。

在你的代码行中:

var Results = UserString.replace(ReplaceString, Addstring);

UserString的值不会因为在其上调用replace()而改变。

在条件语句中:

UserString.indexOf(ReplaceString) > -1

如果为真,则表示UserString仍然包含至少一个ReplaceString的实例。
这是有道理的,因为你还没有修改UserString。如果要确保Results不再出现ReplaceString,那么只有在满足以下条件时才抛出错误:

Results.indexOf(ReplaceString) > -1