Estou tão perto de conseguir isto, mas não está... 39; não está certo.
Tudo que eu gostaria de fazer era remover o caracter r
de uma string.
O problema é que existe mais de uma instância de r
na string.
Entretanto, é sempre o caractere no índice 4 (então o 5º caractere).
exemplo de cadeia: crt/r2002_2
O que eu quero: crt/2002_2
Esta função de substituição remove ambos os `r'.
mystring.replace(/r/g, '')
Produz: ct/2002_2
Eu tentei esta função:
String.prototype.replaceAt = function (index, char) {
return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '')
Só funciona se eu o substituir por outro personagem. Ele não vai simplesmente removê-lo.
Alguma ideia?
var mystring = "crt/r2002_2";
mystring = mystring.replace('/r','/');
irá substituir /r
por /
utilizando String.prototype.replace
.
Alternativamente, você poderia usar o regex com uma bandeira global (como sugerido por Erik Reppen & Sagar Gala, abaixo) para substituir todas as ocorrências por
mystring = mystring.replace(/\/r/g, '/');
EDIT: Como todos's estão se divertindo tanto aqui e user1293504 doesn't parecem estar voltando em breve para responder perguntas esclarecedoras, aqui's um método para remover o Nth character de uma string:
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));
Como o usuário1293504 utilizou a contagem normal em vez de uma contagem indexada a zero, nós'temos que remover 1 do índice, se você quiser utilizar isto para replicar como charAt
funciona, não subtraia 1 do índice na 3ª linha e utilize tmp.splice(i, 1)
em vez disso.
return this.substr(0, index) + char + this.substr(index + char.length);
O "comprimento da carta" é zero. Você precisa adicionar 1
neste caso para pular o caractere.