-3

我只想交换字符串中的单词,考虑:

var str = "this is a test string";

现在 test 应该被替换为 string & string 应该被替换为 test 以便输出应该是

"this is a string test"

实际代码:

<html>
<title> Swappping Words </title>
<body>
    <script type="text/javascript">
        var o_name = prompt("Enter the String", "");
        var replace1 = prompt("Enter the first word to replace ", "");
        var r1 = prompt("replacing word of 1", "")
        var replace2 = prompt("Enter the second word to replace ", "");
        var r2 = prompt("replacing word of 2", "")
        var n_name1 = o_name.replace(replace1, r1).replace(replace2, r2);
        document.writeln("Old string = " +o_name);
        document.writeln("New string = " +n_name1);
    </script>  
</body>

我正在学习基础知识,有人可以向我解释如何做到这一点吗?

4

2 回答 2

9

您将面临的主要问题是,除非您同时进行两个替换,否则您将面临用第二个替换覆盖您的第一个替换的风险。

尝试这个:

var result = str.replace(/test|string/g,function(m) {
    switch(m) {
        case "test": return "string";
        case "string": return "test";
    }
});
于 2013-10-21T15:32:23.913 回答
1

您可以使用临时占位符,以便在交换值时不会覆盖。在这么多行中,只是为了让您清楚地了解这个想法。

<script>
var s="this is a test string";
s=s.replace("string","#temp#");
s=s.replace("test","string");
s=s.replace("#temp#","test");
alert(s);
</script>
于 2013-10-21T15:31:45.193 回答