メモの日々


2021年03月25日(木) [長年日記]

[javascript] JavaScriptには部分文字列を取得するメソッドが複数ある

JavaScriptで部分文字列を取得するときにどのメソッドを使えばいいのかいつも迷うのでメモ。

slice()

通常はslice()を使うのがよさそう。名前が短いし。引数には部分文字列の開始位置と終了位置のインデックスを指定する。

'こんにちは'.slice(1, 4);  //--> 'んにち'

Why two different methods slice() & substring()?によると、slice()はsubstring()より後に実装されたもののようだ。

substring()

substring()は仕様がslice()とほぼ同じだが違う所もある。MDNのsubstring()の説明に違いが書かれている。

開始位置が終了位置よりも大きい場合と、引数に負の数が指定された場合の動作が違う。

substr()

substr()は2番目の引数にインデックスではなく文字数を指定する。

'こんにちは'.substr(1, 4);  //--> 'んにちは'

これが便利なケースもあるけど、substr()は非推奨扱いのようなのでなるべく使わない方がいい。

String.prototype.substr probably won't be removed anytime soon, but it's defined in Annex B of the ECMA-262 standard, whose introduction states: "… Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code. …"