• JavaScriptのsplitで文字列を分割する方法

    公開日:2018年10月12日 最終更新日:2021年12月22日

    JavaScriptのsplit()メソッドは指定の「区切り文字」で文字列を分割する事のできるメソッドです。分割された文字は、配列で取得できます。
    本コラムでは、split()メソッドの使い方をサンプルコードと共に解説します。

    目次

    1. split()メソッド

    1.1. split()メソッドの基本書式

    ●split()メソッド

    stringObj.split([delimiter], [limit]])

    ▲ページトップへ戻る

    1.2. パラメーター

    [delimiter]:

    (省略可能)文字列を区切る為の「区切り文字(delimiter)」を指定します。delimiterには、1文字以上の文字や記号、正規表現を指定する事ができます。delimiter(区切り文字)を指定しない場合は、元の文字列は分割されません。

    [limit]:

    (省略可能)分割結果の上限数を指定を指定します。

    ▲ページトップへ戻る

    1.3. 戻り値

    区切り文字(delimiter)で分割された文字の配列を返します。

    ▲ページトップへ戻る

    2. split()メソッドの使い方

    2.1. 空白で区切って文字列を分割する方法

    「空白」で区切られた文字列を分割してみましょう。

    var stringObj = "文字1 文字2 文字3"; //分割対象の文字列
    stringObj.split(" "); //Stringオブジェクトをスペースで分割する

    サンプルHTMLの「JS_Sample1.html」をコピーして保存する場合は、ファイル形式を「utf-8」にします。

    splitメソッドに区切り文字の空白(スペース)をダブルクォーテーションで囲って指定します。

    ●JS_Sample1.html ----------------------------

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="utf-8">
    <title>split() method - Introduction to JavaScript</title>
    <body>
    <p>ボタンをクリックすると、文字列の「リンゴ ミカン バナナ ストロベリー」が分割されて配列に格納されます。</p>
    <button onclick="splitFunction01()">splitの実行</button>
    <p id="sample1"></p>
    <script>
    function splitFunction01() {
    var stringObj = "リンゴ ミカン バナナ ストロベリー";
    var result = stringObj.split(" ");
    document.getElementById("sample1").innerHTML = result;
    }
    </script>
    </body>
    </html>
    ----------------------------

    以下「split実行」ボタンをクリックして動きを確認して下さい。分割された文字配列をid属性が「sample2」の段落に表示しています。

    ●実行結果

    ボタンをクリックすると、文字列の「リンゴ ミカン バナナ ストロベリー」が分割されて配列に格納されます。

    ▲ページトップへ戻る

    2.2. カンマ区切りで文字列を分割する方法

    次にカンマ「,」で区切られた文字列データーを分割してみましょう。

    var stringObj = "文字1,文字2,文字3"; //カンマ区切りの文字列
    stringObj.split(","); //Stringオブジェクトをカンマで分割する

    ●JS_Sample2.html ----------------------------

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="utf-8">
    <title>split() method - Introduction to JavaScript</title>
    <body>
    <p>ボタンをクリックすると、文字列の「リンゴ,ミカン,バナナ,ストロベリー」が分割されて配列に格納されます。</p>
    <button onclick="splitFunction02()">splitの実行</button>
    <p id="sample2"></p>
    <script>
    function splitFunction02() {
    var stringObj = "リンゴ,ミカン,バナナ,ストロベリー";
    var result="";
    stringObj.split(',').forEach(
    function( value ) {
    result= result+value+"<br>";
    })
    document.getElementById("sample2").innerHTML = result;
    }
    </script>
    </body>
    </html>
    ----------------------------

    splitメソッドでカンマ区切りのデータを分割し、forEach文で処理しています。分割した文字にHTMLの改行コード「<br>」を追加していますので、ブラウザー上で各データーが改行されて表示されます。

    ●実行結果

    ボタンをクリックすると、文字列の「リンゴ,ミカン,バナナ,ストロベリー」が分割されて配列に格納されます。

    ▲ページトップへ戻る

    2.3. 正規表現を使って文字列を分割する方法

    区切り文字として「正規表現」を使う事もできます。

    var stringObj = "文字1[区切文字]文字2[区切文字]文字3"; //分割対象の文字列
    stringObj.split(正規表現); //Stringオブジェクトを正規表現で分割する

    ●JS_Sample3.html ----------------------------

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="utf-8">
    <title>split() method - Introduction to JavaScript</title>
    <body>
    <p>ボタンをクリックすると、文字列の「リンゴ1ミカン2バナナ3ストロベリー4」が分割されて配列に格納されます。</p>
    <button onclick="splitFunction03()">splitの実行</button>
    <p id="sample3"></p>
    <script>
    function splitFunction03() {
    var stringObj = "リンゴ1ミカン2バナナ3ストロベリー4";
    var result="";
    var splitStrObj= stringObj.split(/\d/);
    for (i = 0; i < splitStrObj.length-1; i++) {
    result= result + "[" + i +"] " + splitStrObj[i] +"<br>";
    }
    document.getElementById("sample3").innerHTML = result;
    }
    </script>
    </body>
    </html>
    ----------------------------

    サンプルコードの文字列は数字の「1, 2, 3, 4」で区切られています。正規表現を使うとこのような文字列データーも分割する事ができます。splitメソッドに正規表現リテラルで数値を表す「/\d/」を指定します。

    MDN Web docs-正規表現: https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions

    ●実行結果

    ボタンをクリックすると、文字列の「リンゴ1ミカン2バナナ3ストロベリー4」が分割されて配列に格納されます。

    ▲ページトップへ戻る

    2.4. 改行で文字列を分割する方法

    改行を含む文字列を分割する場合は、splitメソッドに改行を表す正規表現の「\n」を指定します。

    var stringObj = "文字1
    文字2
    文字3"; //改行付きの文字列
    stringObj.split(改行コード); //Stringオブジェクトを改行で分割する

    ●JS_Sample4.html ----------------------------

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="utf-8">
    <title>split() method - Introduction to JavaScript</title>
    <body>
    <p>ボタンをクリックすると、テキストエリアで改行された文字が分割されて配列に格納されます。</p>
    <p><textarea rows="10" cols="60" id="sample4">
    改行テキスト1&#13;
    改行テキスト2&#13;
    改行テキスト3&#13;
    改行テキスト4&#13;
    改行テキスト5&#13;
    改行テキスト6</textarea></p>
    <button onclick="splitFunction04()">splitの実行</button>
    <p id="result4"></p>
    <script>
    function splitFunction04() {
    var stringObj = document.getElementById('sample4').value;
    var splitStrObj = stringObj.split(/\n/,20);
    var result="";
    for (i = 0; i < splitStrObj.length; i++) {
    result= result + "[" + i +"] " + splitStrObj[i] +"<br>";
    }
    document.getElementById("result4").innerHTML = result;
    }
    </script>
    </body>
    </html>
    ----------------------------

    サンプルコードでは区切り文字の指定に加え、分割の上限「20」を指定しています。

    ●実行結果

    ボタンをクリックすると、テキストエリアで改行された文字が分割されて配列に格納されます。

    ▲ページトップへ戻る

    2.5. 区切り文字に「""」を指定して部分文字列を取得する方法

    splitメソッドの区切り文字に「""」を指定すると、Stringオブジェクトを一文字ずつ分割します。

    var stringObj = "文字1"; //分割する文字列
    stringObj.split(""); //区切り文字に「""」を指定する

    ●JS_Sample5.html ----------------------------

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="utf-8">
    <title>split() method - Introduction to JavaScript</title>
    <body>
    <p>ボタンをクリックすると、文字列の「テキスト分割」が一文字ずつ分割されて配列に格納されます。</p>
    <button onclick="splitFunction05()">splitの実行</button>
    <p id="sample5"></p>
    <script>
    function splitFunction05() {
    var stringObj = "テキスト分割";
    var result="";
    stringObj.split("").forEach(
    function( value ) {
    result += value+"<br>";
    })
    document.getElementById("sample5").innerHTML = result;
    }
    </script>
    </body>
    </html>
    ----------------------------

    splitメソッドに引数を指定しないと、Stringオブジェクトの文字列は分割されませんが、「""」を指定すると文字列を一文字ずつ分割します。サンプルコードで動作を確認して下さい。

    ●実行結果

    ボタンをクリックすると、文字列の「テキスト分割」が一文字ずつ分割されて配列に格納されます。

    ▲ページトップへ戻る

    JavaScriptのスキルが活かせる最新求人情報をチェック!

    月額単価60万円〜90万円
    勤務地 東京都 千代田区
    月額単価80万円〜90万円
    勤務地 東京都 渋谷区
    月額単価70万円〜
    勤務地 東京都 渋谷区
    月額単価70万円〜90万円
    勤務地 東京都 文京区

    フリーランスの方でこのようなお悩みありませんか?

    • 定期的に案件を紹介してほしい
    • 完全フルリモートワークや、週1出勤など、働き方を選びたい
    • 単価交渉など営業周りが苦手なので、誰かに任せたい

    プロエンジニアにお任せください!

    プロエンジニアはほとんどEND直案件!高額単価案件ならお任せください。
    完全フルリモートや、週1出勤など、希望に合わせた働き方ができる案件を多数ご用意しています。
    単価や契約交渉などは弊社キャリアコンサルタントに全てお任せください。

    無料登録して、あなたの希望に合った案件をチェック!

    簡単60秒!無料登録はこちらから

    おすすめ記事

  • ピックアップ

    フリーランス

    NEW 【言語複数】フルスタックエンジニア★某有名経済情報サービスを展開している企業での開発

    今回は、BtobB向け経済情報プラットフォームの開発に関わっていただきます。 新しいチームが組成される...

    月額単価:60万円〜90万円

    フリーランス

    NEW 【React/Node.js】フロントエンドエンジニア★クラウド型動画コンテンツ配信システムの開発

    国内導入実績No.1の実績を持つクラウド型動画コンテンツ配信システムを行っている企業にて、フロントエ...

    月額単価:80万円〜90万円

    フリーランス

    NEW 【Ruby/React/Node.js】フルスタックエンジニア★動画配信プラットフォームの開発

    動画配信プラットフォームを提供する企業にて、Ruby / React、Node.js のフルスタックエンジニアとして...

    月額単価:70万円〜

    フリーランス

    【C#.net】システムエンジニア★クラウドサービスのソフトウェア開発

    自社内で複数パッケージソフトの開発や、ソフトウェア設計、開発を提供している受託開発企業にて、C#.ne...

    月額単価:70万円〜90万円

SCROLL TOP