我不知道在JS中通过范围从文本中删除文本的简单方法。
我在那里读了很多问题,但没有人帮我。
我不想用户替换,等等。只是删除。
示例:
jakxxxjakxxx
=> remove 4-6 returns jakjakxxx
jakxxxjakxxx
=> remove 0-2返回xxxjakxxx
有没有什么函数是标准的js库?
发布于 2018-08-28 01:33:34
我会提供一个与Nina不同的解决方案,下面是两个子串调用:
function remove(string, from, to) {
return string.substring(0, from) + string.substring(to);
}
不需要转换为迭代字符的数组。
注意:请记住,我们从0开始计数。
发布于 2018-08-28 01:28:53
你可以过滤字母。
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
发布于 2018-08-28 01:41:13
基于你在评论中的跟进:使用.substring()
和.replace()
,记住Javascript (像几乎所有其他语言一样)使用从0开始的偏移量,而不是1,并读取substring
function documentation以确保其参数被提供为“开始位置,包括,结束位置,排除”:
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约定,不要在源代码中烘焙反模式。
https://stackoverflow.com/questions/52044195
复制相似问题