切出,并替换一部分字符串

时间:2013-09-14 14:54:56

标签: javascript

我的字符串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”

2 个答案:

答案 0 :(得分:2)

你想做的很简单!切出并更换字符串。这是基本工具,您需要scissorglue!糟糕,我的意思是string.Split()string.Replace()

如何使用?

嗯,我不确定您是否要使用string.Split(),但您已使用string.Replace(),所以请点击此处。

String.Replace使用两个参数,例如("one", "two"),您需要确保不要将char替换为stringstring一个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毫秒。