1. ホーム
  2. javascript

[解決済み] 特定のインデックスに文字列を挿入する

2022-03-24 02:27:48

質問

ある文字列を他の文字列の特定のインデックスに挿入するにはどうすればよいですか?

 var txt1 = "foo baz"

例えば、"foo" の後に "bar " を挿入したい場合、どのようにしたら実現できますか?

私が考えたのは substring() しかし、もっとシンプルでわかりやすい方法があるはずです。

どのように解決するのか?

をプロトタイプ化することができます。 splice() をStringに変換します。

ポリフィル

if (!String.prototype.splice) {
    /**
     * {JSDoc}
     *
     * The splice() method changes the content of a string by removing a range of
     * characters and/or adding new characters.
     *
     * @this {String}
     * @param {number} start Index at which to start changing the string.
     * @param {number} delCount An integer indicating the number of old chars to remove.
     * @param {string} newSubStr The String that is spliced in.
     * @return {string} A new string with the spliced substring.
     */
    String.prototype.splice = function(start, delCount, newSubStr) {
        return this.slice(0, start) + newSubStr + this.slice(start + Math.abs(delCount));
    };
}

使用例

String.prototype.splice = function(idx, rem, str) {
    return this.slice(0, idx) + str + this.slice(idx + Math.abs(rem));
};

var result = "foo baz".splice(4, 0, "bar ");

document.body.innerHTML = result; // "foo bar baz"


EDITです。 となるように修正しました。 rem は絶対値です。