如何使用JS按范围从字符串中删除字符串

时间:2018-08-27 17:22:54

标签: javascript string

我不知道如何在JS中按范围从文本中删除文本。

我在那里读了很多问题,但是没人帮我。

我不想用户替换,等等。只需删除。

示例:

jakxxxjakxxx =>删除4-6返回jakjakxxx

jakxxxjakxxx =>删除0-2返回xxxjakxxx

标准js库有什么功能吗?

3 个答案:

答案 0 :(得分:3)

您可以过滤字母。

function remove(string, from, to) {
    return [...string].filter((_, i) => i < from || i > to).join('');
}

console.log(remove('jakxxxjakxxx', 4, 6)); // jakjakxxx 
console.log(remove('jakxxxjakxxx', 0, 2)); // xxxjakxxx
                    012345678901

或将字符串切成薄片。

function remove(string, from, to) {
    return string.slice(0, from) + string.slice(to);
}

console.log(remove('jakxxxjakxxx', 4, 6)); // jakjakxxx 
console.log(remove('jakxxxjakxxx', 0, 2)); // xxxjakxxx

答案 1 :(得分:3)

我会提供与Nina不同的解决方案,这里有2个子字符串调用:

function remove(string, from, to) {
  return string.substring(0, from) + string.substring(to);
}

无需转换为迭代字符的数组。

注意:请记住,我们从0开始计数。

答案 2 :(得分:0)

根据评论的后续内容:使用.substring().replace(),请记住Javascript(几乎与其他所有语言一样)都使用从0开始而不是1的偏移量,并读取{{ 3}},以确保将其自变量设置为“开始位置(包括首尾),结束位置,不包括首字母”:

var a = "jakxxxjakxxx";
var b = "jakxxxjakxxx";

var c = a.replace(a.substring(3,6)); // => "jakjakxxx"
var d = b.replace(a.substring(0,3)); // => "xxxjakxxx"

完成。如果您经常使用参数重写,则将其放在自己的函数中,但是要实现想要实现的功能,您只需要两个内置函数,但是您应该要做的一件事是尝试使用您自己选择的数字来指示字符串或切片中的哪个索引来使之起作用:一起使用JS约定,不要在源代码中加入反模式。