JavaScriptで文字列を切り取るときは、 split()
, substr()
, substring()
, slice()
を使うことができます。これらの関数がどのように文字列を切り取るかを使用する方法を紹介します。
1. split() : 区切り文字で文字列を分離して配列に戻す
split()
の Syntax は次のようになります。引数で区切り文字と limit を受け取ります。 limitは、区切り文字で区切る文字列の数です。
例でどのように動作するかを見てみましょう。
string.split(splitter, limit);
1.1 区切り文字のみ引数として渡す
区切り文字だけが引数として渡されると、文字列を区切り文字で区切り、配列に入れて返します。
let str = 'Hello, World, Javascript';
console.log(str.split(','));
Output:
[ 'Hello', ' World', ' Javascript' ]
1.2 区切り文字と limit を引数として渡す
limitは区切り文字で区切る文字列の数になります。 limitで0を渡すと空の配列が返され、1を渡すと区切り文字で1つの文字列だけが切り捨てられ、配列に返されます。
let str = 'Hello, World, Javascript';
console.log(str.split(',', 0));
console.log(str.split(',', 1));
console.log(str.split(',', 2));
console.log(str.split(',', 3));
Output:
[]
[ 'Hello' ]
[ 'Hello', ' World' ]
[ 'Hello', ' World', ' Javascript' ]
1.3 区切り文字と limit を渡さない
引数として何も渡さない場合は、文字列全体を配列に入れて返します。長さが1の配列になります。
let str = 'Hello, World, Javascript';
console.log(str.split());
Output:
[ 'Hello, World, Javascript' ]
1.4正規表現(Regex)で文字列を切り捨てる
以下のように正規表現を引数に渡して文字を切り取ることができます。
let str = 'Hello,World?Java!script';
let arr = str.split(/[!,?]/);
console.log(arr);
Output:
[ 'Hello', 'World', 'Java', 'script' ]
1.5 Destructuring
以下のように [a, b, c]
のように返されると、各変数に値が格納されます。
let str = 'Hello World Javascript';
let [a, b, c] = str.split(' ');
console.log(a);
console.log(b);
console.log(c);
Output:
Hello
World
Javascript
2. substr() : 特定のIndexで希望の長さだけ切り捨てて文字列として返す
substr()
の Syntax は以下のようになります。 start は Index であり、この Index から引数に渡した長さだけ文字列を切り取り、文字列として返します。
str.substr(start , length)
substr(5)
のように start だけを渡すと、start から文字列の最後まで切り捨てて返します。 substr(0, 5)
は Index 0 から長さ 5 だけ文字列を切り取り返します。
let str = 'HelloWorldJavascript';
let a = str.substr(5);
let b = str.substr(0, 5);
let c = str.substr(0, 10);
console.log(a);
console.log(b);
console.log(c);
Output:
WorldJavascript
Hello
HelloWorld
2.1 startが負の場合
start が負の場合、文字列の最後から前方に数だけ移動したものが start Index になります。以下の例では、Index -6
はIndex 15
になります。
let str = 'HelloWorldJavascript';
let a = str.substr(-6);
let b = str.substr(-6, 3);
let c = str.substr(-6, 5);
console.log(a);
console.log(b);
console.log(c);
Output:
script
scr
scrip
3. substring() : 開始Indexから終了Indexまで文字列を切り捨てて返す
substring()
の Syntax は次のようになります。 Index start
を含み、Index end
を含まない文字列を切り捨てて返します。
str.substring(start, end)
substring(6)
のようにstartだけを渡すと、startから最後まで文字列を切り捨てます。 substring(6, 8)
は、Index 6 から Index 8 を含まない Index 7 まで文字列を切り捨てます。
let str = 'Hello World Javascript';
let a = str.substring(6);
let b = str.substring(6, 8);
let c = str.substring(6, 0);
console.log(a);
console.log(b);
console.log(c);
Output:
World Javascript
Wo
Hello
4. slice() : substringに似ていますが、少し違うメソッド
slice()
の Syntax は以下の通りで、見てわかるように substring()
と同じです。動作もほぼ同様ですが、若干違いがあります。
違いは、例でもう一度説明します。
str.slice(start, end)
以下の例は、上記の substring()
の例でキーワードだけを slice()
に変更しました。ほぼ同じように動作するため、結果は同じです。
let str = 'Hello World Javascript';
let a = str.slice(6);
let b = str.slice(6, 8);
let c = str.slice(6, 0);
console.log(a);
console.log(b);
console.log(c);
Output:
World Javascript
Wo
Hello
4.1 sliceとsubstringの違い
引数として負数が渡されると、 substring()
は空の文字列を返します。しかし、 slice()
は負のIndexを適用して文字列を切り捨てます。
let str = 'Hello World Javascript';
let a = str.substring(0, -6);
let b = str.slice(0, -6);
console.log(a);
console.log(b);
結果を見ると、substringは空の文字列を返しましたが、sliceは 0
から 15(-6)
まで切りました。
Hello World Java
Related Posts
- JavaScript - 現在のタイムスタンプを取得する
- Node.js - ファイル、ディレクトリの削除
- JavaScript - 文字列 空白 削除
- JavaScript sort() 関数、例の紹介
- JavaScript Set delete() 関数、値の削除
- JavaScript - 実行時間の測定方法
- JavaScript - 配列をオブジェクトに変換する4つの方法
- JavaScript - Mapの作成と初期化、3つの方法
- JavaScript - Map巡回、3つの方法
- JavaScript - Mapソート(キーまたはvalueでソート)
- JavaScript - オブジェクトに特定の値が存在することを確認する
- JavaScript - 数値がNaNであるかどうかを確認する方法
- JavaScript Enum (列挙型)
- JavaScript - 日付/時刻比較、3つの 方法
- JavaScript - 空の文字列の確認、2つの方法
- JavaScript - 最後の文字を削除する、4つの方法
- JavaScript - 配列を文字列に変換、3つの方法
- JavaScript - 複数行の文字列、3つの方法
- JavaScript - オブジェクトを文字列に変換する2つの方法
- JavaScript - 配列から重複排除、4つの方法
- JavaScript - 文字列の比較方法、5つの方法
- JavaScript - 文字列から数字のみを抽出する
- JavaScript - 配列のソート方法(昇順、降順)
- JavaScript - 文字列 切り出し(split、substr、substring、slice)
- JavaScript - Setを配列(Array)に変換する
- JavaScript - 文字列を配列(Array)に変換
- JavaScript - 関数の宣言方法
- JavaScript - 配列宣言、追加、削除などの基本的 な使用法のクリーンアップ
- JavaScript - 文字列を数値に変換する方法
- JavaScript - 文字列を結合する、接続する(concat、join、+)