我就快拿到了,但就是不太对。
我想做的就是从字符串中删除字符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, '')
只有当我用另一个字符替换它时,它才会工作。它不会简单地移除它。
任何想法吗?
创建如下所示的函数
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,'');
我不喜欢使用replace函数从字符串中删除字符。那样做是不合逻辑的。通常我用c# (Sharp)编程,每当我想从字符串中删除字符时,我使用string类的remove方法,但没有Replace方法,即使它存在,因为当我要删除时,我只删除,不替换。这是合乎逻辑的!
在Javascript中,字符串没有remove函数,但是有substr函数。可以使用substr函数一次或两次从字符串中删除字符。您可以使用下面的函数删除字符串末尾的起始索引处的字符,就像c#方法首先重载string一样。删除(int startIndex):
function Remove(str, startIndex) {
return str.substr(0, startIndex);
}
和/或你也可以让下面的函数删除字符在开始索引和计数,就像c#方法第二次重载字符串。删除(int startIndex, int count):
function Remove(str, startIndex, count) {
return str.substr(0, startIndex) + str.substr(startIndex + count);
}
然后您可以使用这两个函数或其中一个来满足您的需要!
例子:
alert(Remove("crt/r2002_2", 4, 1));
输出:crt / 2002 _2
如果您在大型项目中经常这样做,那么通过使用没有逻辑的技术来实现目标可能会导致对代码的理解混乱,并在未来出现错误!