我就快拿到了,但就是不太对。 我想做的就是从字符串中删除字符r。 问题是,字符串中r的实例不止一个。 但是,它总是索引4的字符(因此是第5个字符)。

示例字符串:crt/r2002_2

我想要什么:crt/2002_2

这个替换函数去掉了r

mystring.replace(/r/g, '')

生产:ct / 2002 _2

我尝试了这个函数:

String.prototype.replaceAt = function (index, char) {
    return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '')

只有当我用另一个字符替换它时,它才会工作。它不会简单地移除它。

任何想法吗?


当前回答

所以基本上,另一种方法是:

使用array .from()方法将字符串转换为数组。 遍历数组并删除除索引为1的字母外的所有r字母。 将数组转换回字符串。

let arr = Array.from("crt/r2002_2"); 加勒比海盗。forEach((信,i) = >{如果(信= = =‘r’& &我! = = 1)arr[我 ] = "" }); document . write (arr.join (" "));

其他回答

所以基本上,另一种方法是:

使用array .from()方法将字符串转换为数组。 遍历数组并删除除索引为1的字母外的所有r字母。 将数组转换回字符串。

let arr = Array.from("crt/r2002_2"); 加勒比海盗。forEach((信,i) = >{如果(信= = =‘r’& &我! = = 1)arr[我 ] = "" }); document . write (arr.join (" "));

让STR = '1234567'; 令index = 3; STR = STR .substring(0,索引)+ STR .substring(索引+ 1); Console.log (str) // 123567 -索引“3”下的数字“4”被删除

如果您只想删除单个字符和 如果你知道你想要删除的字符的索引,你可以使用以下函数:

/**
 * Remove single character at particular index from string
 * @param {*} index index of character you want to remove
 * @param {*} str string from which character should be removed
 */
function removeCharAtIndex(index, str) {
    var maxIndex=index==0?0:index;
    return str.substring(0, maxIndex) + str.substring(index, str.length)
}

你可以这样使用:if (str[4] === 'r') str = str.slice(0,4) + str.slice(5)

解释:

If (str[4] === 'r') 检查第5个字符是否为“r” str.slice (0, 4) 对字符串进行切片,以获得'r'之前的所有内容 + str.slice (5) 添加字符串的其余部分。

缩小:s = s[4] = =‘r’吗? s.slice (0, 4) + s.slice (5): s[37个字节!] 演示:

function remove5thR (s) s = s[4] =‘r’? s。切片(0.4)+ s。切片(5):s; 控制台日志(s);//输出日志 的 移除5thr ('crt/r2002_2') // > 'crt/2002_2' remove5thR(“crt | r2002_2 ') // > ' crt | 2002_2” 删除5thr(“rrrrr”)// >“rrrr” 删除5thr(“RRRRR”)// >“RRRRR”(不改变)

下面的函数最适合我的例子:

public static cut(value: string, cutStart: number, cutEnd: number): string {
    return value.substring(0, cutStart) + value.substring(cutEnd + 1, value.length);
}