7

特定の位置の文字を文字列に置き換えることは可能ですか

文字列があるとしましょう:"I am a man"

7 の文字を文字列に置き換えたい"wom"(元の文字に関係なく)。

最終結果は次のようになります。"I am a woman"

4

3 に答える 3

21

Javascriptでは文字列は不変です。「その場で」変更することはできません。

元の文字列を切り取り、すべてのピースから作成された新しい文字列を返す必要があります。

// replace the 'n'th character of 's' with 't'
function replaceAt(s, n, t) {
    return s.substring(0, n) + t + s.substring(n + 1);
}

注意:一部のブラウザでは、組み込み型のString.prototype関数を追加するとパフォーマンスが非常に悪くなるため、これを追加しませんでした。prototype

于 2012-05-28T12:28:30.780 に答える
1

または、配列関数を使用して、この方法で行うこともできます。

var a='I am a man'.split('');
a.splice.apply(a,[7,1].concat('wom'.split('')));
console.log(a.join(''));//<-- I am a woman
于 2012-05-28T13:33:56.553 に答える
-1

string.replace()Javascript に はメソッドがあります: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace

PS
ところで、最初の例では、あなたが話している「m」のインデックスは 7 です。Javascript は 0 ベースのインデックスを使用します。

于 2012-05-28T12:28:49.290 に答える