我只想交换字符串中的单词,请考虑:
var str = "this is a 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>
我正在学习基础知识,有人可以向我解释如何做到这一点吗?
答案 0 :(得分:9)
您将面临的主要问题是,除非您同时进行两次替换,否则您将面临用第二次替换首次替换的风险。
试试这个:
var result = str.replace(/test|string/g,function(m) {
switch(m) {
case "test": return "string";
case "string": return "test";
}
});
答案 1 :(得分: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>