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

时间:2015-09-06 17:58:13

标签: javascript

我所拥有的是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()方法中使用变量?或者if ...使用indexOf行?

我基本上试图将其设置为使用ReplaceString的值检查UserString,如果匹配,则它将执行replace()方法并将结果显示给给定的HTML元素。否则,如果ReplaceString与UserString中的任何东西都不匹配,它会提醒用户出错并检查它。

2 个答案:

答案 0 :(得分:3)

JavaScript是cAsE SeNsItIvE。请注意,Documentdocument对象不同。请使用以下行:

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

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

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

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

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

旁注, 请不要使用此类命名约定。看起来您正在从Visual Basic迁移。

答案 1 :(得分:1)

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

在您的代码行中:

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

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

在条件声明中:

UserString.indexOf(ReplaceString) > -1

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

Results.indexOf(ReplaceString) > -1