プログラミングを勉強するサイトです。今まで使ってこなかった言語を新しく勉強し始めたのをきっかけに、プロブロを始めました。

【JavaScript】split()を使って文字列を分割し配列に格納するには

【JavaScript】split()を使って文字列を分割し配列に格納するには

 

split()メソッドの使い方の記事です。

指定した文字で分割して、配列で返してくれるとても便利な子です。

split()メソッドの構文

構文は次のとおりです。

str.split([separator [,limit]])

strは分割前の文字列全体です。

 

separatorは区切り文字。

カンマやハイフンなど、直接文字列を指定できます。

正規表現も指定でき、改行や数字などでも分割できます。

 

limitは配列にする要素数の上限、省略可能です。

指定した場合、limitを超える部分は切り捨てられ、配列に格納されません。

 

戻り値は配列が返ってきます。

区切り文字で分割した文字が要素一つひとつに入ります。

リテラルで文字列を分割する

例えば、CSVのデータを配列に入れたかったら、カンマ「,」で分割ですよね。

str = "cafemocha,soylatte,espresso";
list_array = str.split(",");

 

図で書くと、こんなイメージです。

正規表現で文字列を分割する

正規表現を使った分割も出来ます。

例えば次のように、cafemocha、soylatte、espressoが改行された文字列があったとします。

cafemocha

soylatte

espresso

改行は「\n」で行われているので、次のように書けます。

str = "cafemocha\nsoylatte\nespresso";
list_array = str.split(/\n/);

 

数字で分割したい場合。

何かの料理の作り方です。

str = "1.鍋にお湯500mlをよく沸騰させ、麺を入れて3分間ゆでてください。2.あらかじめ粉末スープを器に入れておきます。3.麺がほぐれたら、鍋からお湯だけを先に入れ、粉末スープとよく混ぜて溶かします。4.麺を入れて、最後に秘伝のタレを加え、よく混ぜれば出来上がりです。熱いので気を付けてお召し上がりください。";
list_array = str.split(/[0-9]./);

 

各要素に次のように文字列が入っていきます。

console.log(list_array[0]); //
console.log(list_array[1]); //鍋にお湯500mlをよく沸騰させ、麺を入れて3分間ゆでてください。
console.log(list_array[2]); //あらかじめ粉末スープを器に入れておきます。

 

「[0-9]」とすると、うっかり「500」のところでも分割されそうになります。

「[0-9].」のようなちょっとした工夫があると良いでしょう。

区切り文字も配列に入れる

区切り文字をカッコ()でくくると、区切り文字も1つの要素として配列に入ります。

先ほどの数字で分割した例を使います。

str = "1.鍋にお湯500mlをよく沸騰させ、麺を入れて3分間ゆでてください。2.あらかじめ粉末スープを器に入れておきます。3.麺がほぐれたら、鍋からお湯だけを先に入れ、粉末スープとよく混ぜて溶かします。4.麺を入れて、最後に秘伝のタレを加え、よく混ぜれば出来上がりです。熱いので気を付けてお召し上がりください。";
list_array = str.split(/([0-9].)/);

 

これで配列の中身はどうなるか。

各要素に次のように区切り文字もそれぞれ入っていきます。

console.log(list_array[0]); //
console.log(list_array[1]); //1.
console.log(list_array[2]); //鍋にお湯500mlをよく沸騰させ、麺を入れて3分間ゆでてください。
console.log(list_array[3]); //2.
console.log(list_array[4]); //あらかじめ粉末スープを器に入れておきます。

 

まとめ:str.split(区切り文字, [上限]) で分割できる

splitは便利ですね。

リテラルでも正規表現でも、上手く文字列を分割してくれます。

 

この記事ではJavaScriptのsplitメソッドについて書きましたが、PythonにもVBにもC#などにも、splitがあります。

どれも似たような動きをするので、いったん1つの言語で覚えてしまえば後々役に立つはずです。

この記事をシェアする

記事一覧へ戻る

コメント Comments

コメント一覧

コメントはありません。

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックURL

https://pro-blo.com/javascript/how-to-use-split/trackback/

関連記事 Relation Entry