【问题标题】:How can I replace a string by range?如何按范围替换字符串?
【发布时间】:2012-09-16 02:15:03
【问题描述】:

我需要按范围替换字符串 示例:

string = "this is a string";//I need to replace index 0 to 3 whith another string Ex.:"that"
result = "that is a string";

但这必须是动态的。不能替换固定词...需要按范围

我试过了

           result = string.replaceAt(0, 'that');

但这只替换第一个字符,我想要第一个到第三个

【问题讨论】:

  • 你试过什么?你看过 documentation 的字符串方法了吗?

标签: javascript string replace


【解决方案1】:
var str = "this is a string";
var newString = str.substr(3,str.length);
var result = 'that'+newString

substr 返回字符串的一部分,以我为例,它从第 3 个字符开始直到 str.length 到最后一个字符...

要替换字符串的中间,可以用同样的逻辑……

var str = "this is a string";
var firstPart = str.substr(0,7); // "this is "
var lastPart = str.substr(8,str.length); // " string"
var result = firstPart+'another'+lastPart; // "this is another string"

【讨论】:

  • 应该指出,字符串在 javascript 中是不可变的,所以你不要替换那么多,而是创建一个不同开头的新字符串。
【解决方案2】:

我在这里简单的substring 电话就可以了

var str = "this is a string";
var result = "that" + str.substring(4);

查看有效的jsfiddle

【讨论】:

  • 是的,如果我想从第一个字符开始,但如果我想从第三个字符开始?
  • @DevMobile,我不确定你的意思。 str.substring(4) 将返回字符串中从第 4 个索引到末尾的所有字符。
  • 我需要用其他值替换第 4、5、6 个字符
  • 例如:“12345678”需要返回“123otherString78”
【解决方案3】:
function replaceRange(s, start, end, substitute) {
    return s.substring(0, start) + substitute + s.substring(end);
}

var str = "this is a string";
var newString = replaceRange(str, 0, 4, "that"); // "that is a string"

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2016-07-02
    • 2012-12-05
    • 1970-01-01
    • 2011-04-20
    相关资源
    最近更新 更多