jQueryでsplit()を使って文字列を分割

  • このエントリーをはてなブックマークに追加
  • Pocket

スポンサードリンク

jQueryで文字列をバラバラに分割できるsplit()を扱う方法のご紹介です。split()は文字列に含まれる,(カンマ)や/(スラッシュ)等の特定の文字で分割し、配列として返してくれますので、csvデータをカンマで分割したり、改行の箇所で分割したりといろいろと使えますね。

split()の基本的な使い方

まずはsplit()での基本的な文字列の分割方法をご紹介します。

文字列を特定の文字で分割

まずは文字列を特定の文字で分割してみましょう。

以下のサンプルでは、電話番号を-(ハイフン)で分割し、分割した番号のみを配列で返しています。

jQuery

結果(コンソール)

以下のようにコンソールログに分割した配列が表示されるかと思います。


[“03”, “1234”, “5678”]


参考:jQueryでコンソールログを使ったデバッグ方法

構文

split()は以下のような構文になります。

str.split(区切り文字列, 制限する数)

split()は文字列しか処理できません。

split()のさまざまな使い方

次にsplit()でのいろいろな文字列の分割方法をご紹介します。

文字列を特定の個数のみ分割

split()は分割する配列の値の数も制限できます。第二引数に制限する数を指定します。

以下のサンプルでは8つの区切り文字がある文字列のうち、分割した3つの値だけ配列にしています。

jQuery

結果(コンソール)

以下のように文字列のうち3つ目までが分割された配列が表示されるかと思います。

制限を超えた値は削除されます。


[“abc”, ” def”, ” ghi”]


文字列を正規表現を使って分割

split()は正規表現も指定できます。

以下のサンプルでは、半角空白の正規表現を指定し、半角で文字列を分割してコンソールログに配列の中身を表示しています。

jQuery

結果(コンソール)

以下のようにコンソールログに空白で分割した配列が表示されるかと思います。

ちなみに正規表現ではなく、split(' ')と引数にスペースで指定しても同様の処理ができます。


[“東京”, “神田”, “秋葉原”]


文字列を一文字ずつ分割

split()は文字列を区切り文字を使わずに1文字ずつ分割することもできます。

以下のサンプルでは、数字を1文字ずつ分割してコンソールログに配列の中身を表示しています。

jQuery

結果(コンソール)

以下のようにコンソールログに1文字ずつ分割した配列が表示されるかと思います。


[“1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”]


以下のように引数にクォーテーションを並べるだけです。

str.split('')

文字列を改行で分割

文字列を改行コードで分割することもできます。テキストエリアのフォームの値を処理したりとなにかと使えるかと思います。

以下のサンプルでは、テキストエリアの文字列を改行ごとに1行ずつ分割しています。

HTML

jQuery

結果(コンソール)

以下のようにコンソールログに改行ごとに分割した配列が表示されるかと思います。


[“ABCDEFG”, “HIJKLMN”, “OPQRSTU”, “VWXYZ”, “”]


分割した配列の出力

split()で分割した値が格納された配列を出力する方法までを見ていきましょう。

配列の特定の値を取得

複数の分割した値が入る配列の中から、特定の値だけを取り出します。

以下のサンプルでは、配列が格納された変数resの一番最初の値のみをHTMLに表示させます。

jQuery

結果

以下のようにHTMLに配列の最初の値が表示されるかと思います。


新宿


配列に取得したい0から始まるインデックス番号を指定すると、その値のみ取得できます。

res[インデックス番号]

インデックス番号は0から始まる順番なのでres[0]resという配列の中で一番目の値ということになります。

res[2]であれば3番目の値になりますね。

参考:text() でHTML要素にテキストを追加

分割した配列をループで出力

split()で分割した値が格納された配列をeach()でループさせ、文字列として出力する方法をご紹介します。

jQuery

結果

以下のようにHTMLに改行ごとに分割した配列が表示されるかと思います。


  • 03
  • 1234
  • 5678

each()を使ったループ処理は以下の記事でご確認ください。

参考:jQueryのeach()で複数の要素、配列、オブジェクトをループ処理

ファイル名の拡張子を表示

ここでは実践的なサンプルとして、ファイル名から拡張子だけを抜き出す方法をご紹介します。

jQuery

結果

以下のように拡張子が表示されるかと思います。


jpg


split()でよくあるエラー

split()でよくあるエラーが、文字列以外を処理してのエラーです。

spilit()は文字列しか処理できませんので、数値型や配列等他の型をsplit()すると以下のようなエラーになります。

Uncaught TypeError: num.split is not a function

「そんな関数はありません」というエラーメッセージがコンソールログに表示されますので、文字列を処理するようにしましょう。

※ブラウザによっては上記のようには表示されず、Array(*)と表示される場合があります。その際は、そのテキストの左にある▶マークをクリックすると上記配列が表示されます。

スポンサードリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

コメントを残す

*