本記事では、JavaScriptでn文字目~n文字目までの一部の文字を取得する方法についてサンプルコードを用いて解説しています。
JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック
文字列の一部を取得する2つのメソッド
JavaScriptで文字列の一部を取得するには「substringメソッド」「sliceメソッド」を使う2つの方法があります。
substringメソッドとsliceメソッドの基本構文は以下のとおりです。
str.substring(start [, end]);
str.substring(start [, end]);
- str:対象の文字列
- start:取得したい文字列のスタート地点
- end:取得したい文字列の終了地点(省略可能)
n文字目以降の文字列を全て取得する
substringメソッドとsliceメソッドでn文字目以降の文字列を全て取得する書き方は以下のとおりです。
let str = "WebエンジニアWiki";
console.log(str.substring(3)); // => エンジニアWiki
console.log(str.slice(3)); // => エンジニアWiki
上記コードは、4文字目からの文字を全て取得します。substringメソッドとsliceメソッドは、1文字目の「W」を0と認識しているので、3を指定すると「エ」からの文字を全て取得することが出来ます。
n文字目~n文字目までの文字を取得する
substringメソッドとsliceメソッドでn文字目~n文字目までの文字を取得する書き方は以下のとおりです。
let str = "WebエンジニアWiki";
console.log(str.substring(3, 8)); // => エンジニア
console.log(str.slice(3, 8)); // => エンジニア
上記コードは、4文字目から8文字目までの文字を取得します。ここで鋭い方なら、1文字目を0と認識しているのなら何でendの値が7じゃないの?と思います。これは、substringメソッドとsliceメソッドが「start~end-1」文字目を取得するからです。滅茶苦茶ややこしいですね。。
関連記事の紹介
本記事では、文字列の一部を取得する方法でsubstringメソッドとsliceメソッドを紹介しましたが、使い方が全く同じで2つのメソッドは何が違うの?と疑問に思った方も多いと思います。
substringメソッドとsliceメソッドの違いについては、別記事にて紹介しているので興味のある方はご参照ください。