JavaScript を使用して文字列から文字を削除するにはどうすればよいでしょうか? 質問する

JavaScript を使用して文字列から文字を削除するにはどうすればよいでしょうか? 質問する

もうすぐ理解できるのですが、どうも正しくありません。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)代わりに を使用します。

おすすめ記事