我的字符串from, to
中有一部分我要替换为另一个字符串replace_string
。我的代码应该可以工作,但是如果有另一个部分,比如返回的子字符串呢?
var from=10, to=17;
//...
str = str.replace(str.substring(from, to), replace_string);
例如:
from=4,to=6
str = "abceabxy"
replace_string = "zz"
str应该是“abcezzxy”
答案 0 :(得分:2)
你想做的很简单!切出并更换字符串。这是基本工具,您需要scissor
和glue
!糟糕,我的意思是string.Split()
和string.Replace()
。
如何使用?
嗯,我不确定您是否要使用string.Split()
,但您已使用string.Replace()
,所以请点击此处。
String.Replace使用两个参数,例如("one", "two")
,您需要确保不要将char
替换为string
或string
一个char
。它们用作:
var str="Visit Microsoft!";
var n=str.replace("Microsoft","W3Schools");
您的代码:
var from=10, to=17;
//...
var stringGot = str.replace(str.substring(from, to), replace_string);
您应该首先拆分代码,然后替换第二封a
字母!正如你想要的那样。多数民众赞成!
首先,拆分字符串!然后用a
替换第二个z
字母。
对于String.Replace,请参阅:http://www.w3schools.com/jsref/jsref_replace.asp
对于String.SubString:http://www.w3schools.com/jsref/jsref_substring.asp
对于String.Split:http://www.w3schools.com/jsref/jsref_split.asp
答案 1 :(得分:1)
字符串是不可变的。这意味着它们在首次实例化后不会更改。每个操作字符串的方法实际上都返回一个字符串的新实例。因此,您必须将结果分配回变量,如下所示:
str = str.replace(str.substring(from, to), replace_string);
更新:但是,首先执行此操作的更有效方法如下。它也不容易出错:
str = str.substring(0, from) + replace_string + str.substring(to);
看到这个小提琴:http://jsfiddle.net/cFtKL/
它通过一个循环运行两次命令100,000次。第一个需要大约75毫秒,而后者需要20毫秒。