我就快拿到了,但就是不太对。
我想做的就是从字符串中删除字符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, '')
只有当我用另一个字符替换它时,它才会工作。它不会简单地移除它。
任何想法吗?
var mystring = "crt/r2002_2";
mystring = mystring.replace('/r','/');
将/r替换为/使用String.prototype.replace
或者,您可以使用带有全局标志的regex(如Erik Reppen和Sagar Gala所建议的)来替换所有发生的事件
mystring = mystring.replace(/\/r/g, '/');
编辑:
既然大家都在这里玩得很开心,而且user1293504似乎不会很快回来回答澄清问题,这里有一个从字符串中删除第n个字符的方法:
String.prototype.removeCharAt = function (i) {
var tmp = this.split(''); // convert to an array
tmp.splice(i - 1 , 1); // remove 1 element from the array (adjusting for non-zero-indexed counts)
return tmp.join(''); // reconstruct the string
}
console.log("crt/r2002_2".removeCharAt(4));
由于user1293504使用了正常的计数而不是零索引计数,我们必须从索引中删除1,如果您希望使用此方法来复制charAt的工作方式,请不要从第三行索引中减去1,而是使用tmp。改为拼接(i, 1)。
创建如下所示的函数
String.prototype.replaceAt = function (index, char) {
if(char=='') {
return this.slice(0,index)+this.substr(index+1 + char.length);
} else {
return this.substr(0, index) + char + this.substr(index + char.length);
}
}
替换如下所示的字符
var a="12346";
a.replaceAt(4,'5');
为了删除指定下标处的字符,给出第二个参数为空字符串
a.replaceAt(4,'');