もうすぐ理解できるのですが、どうも正しくありません。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, '')
別の文字に置き換えた場合にのみ機能します。単純に削除することはできません。
何かご意見は?
ベストアンサー1
var mystring = "crt/r2002_2";
mystring = mystring.replace('/r','/');
使用し/r
て置き換えます/
String.prototype.replace
。
あるいは、グローバルフラグ付きの正規表現を使用することもできます(エリック・レッペン&サガールガラ(下記)を使用して、すべての出現箇所を
mystring = mystring.replace(/\/r/g, '/');
編集:みんなここでとても楽しんでいるのでユーザー1293504明確な質問に答えるためにすぐに戻ってくることはないようですが、文字列から 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
動作を再現したい場合は、3 行目のインデックスから 1 を減算せずに、tmp.splice(i, 1)
代わりに を使用します。