slice()ってなに?
JavaScriptで文字列の一部を抽出するmethodが、slice()です。
たとえば、mozillaという文字列からmoだけ取り出したい場合、次のようにコードを書きます。
let str = 'mozilla'; str.slice(0, 2);
1行目は、’mozilla’ という文字列を、strという変数に入れています。
2行目で、’mozilla’ という文字列から’mo’という文字列だけ抽出しています。
これをブラウザのディベロッパーモードにあるコンソールに入力すると、”mo”と表示されますね。
slice()の構文
では、slice()はどのような構造になっているのでしょうか。
まず、1つ目の引数は、抽出する最初の文字について、ポジションを指定します。
今回は頭の’m’から抽出したいので、’m’の位置を指定します。
コンピュータは0から順番をカウントするので、1番最初の文字のポジションは、0です。
str[0];
これをコンソールに入れると、”m”と返ってきますね。
次に、2つ目の引数は、「ここから先はいりません」という文字のポジションを指定します。
上の例で、’mo’ ‘zilla’ と分けると、z以降はいりません。なので、’z’の位置を指定します。
頭から数えて3番目、コンピュータは0から数えるので、0, 1, 2・・・2が’z’の位置です。
str[2];
“z”と出てきますね。zの位置は、2です。
まとめると、 ‘mozilla’という文字列から’mo’を取り出したい場合は、
let str = 'mozilla'; str.slice(0, 2);
とコードを書けばOKです。
2つ目の引数が、「ここから先はいりません」という文字の位置を指定する。
少しわかりづらい点かもしれませんが、それさえわかれば使いやすいmethodです。
先頭の文字から〇文字目を抜き出したい場合は、第2引数が抜き出したい文字数と一致します。
では、文字列の途中から、一部の文字を抜き出したい場合はどうすればよいでしょうか。
文字列の途中から一部を抜き出したい場合
上の構文通りに書けば、抜き出せます。
たとえば、 ‘mozilla’ という文字列から、’zi’を抜き出したい場合
str.slice(2, 4);
‘z’の位置: 2
‘l’の位置: 4 (最初のl)
ここから先はいらないという部分は1つ目の’l’以降(’lla’)なので、1つ目の’l’の位置を第2引数に指定します。
ちなみに、上のコードは、strという変数に’mozilla’ という文字列が入っているという前提でのコードです。
文字列の途中から最後の文字までを抜き出したい場合
slice()の第2引数は省略することができます。
たとえば、’mozilla’ という文字列から、’lla’を抜き出したい場合、「ここから抜き出したい」という第1引数だけ指定すればOKです。
そうすると、文字列の最後まで抜き出してくれます。
str.slice(4);
参考にしたサイト
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Useful_string_methods
コメントを書く