[JavaScript] splitの振る舞いとcsvを配列に格納するコード
スポンサーリンク
JavaScriptのsplitメソッドは指定した区切り文字で文字列を分割し、配列に格納してくれる。
var str = "foo,bar,hoge"; var arr = split( "," ); // arr[0] -> foo // arr[1] -> bar // arr[2] -> hoge
引数には正規表現も指定できる。
var str = "foo,bar、hoge"; var reg = /[,、]/g var arr = str.split( reg ); // arr[0] -> foo // arr[1] -> bar // arr[2] -> hoge
指定した区切り文字が文字列中になかった場合も配列に収まる。
var str = "foo"; var reg = /[,、]/g var arr = str.split( reg ); // arr[0] -> foo
テキストエリアに入力されたcsv形式のテキストを、splitを利用し二次元配列に収めるコード。
var str = $("textarea").val(); str = str.replace( /\r\n/g , "\n" ); //IE対策 改行コード\r\nを\rに変換 str = str.replace( /^(\n+)|(\n+)$/g , "" ); //文頭と文末の余計な改行を除去 var arr = str.split( /\n/g ); //改行で分割 var data = []; var reg = /[,\t]/g; //タブまたはカンマで分割 for( var i = 0 , l = arr.length ; i < l ; i++ ){ data[i] = arr[i].split( reg ); for( var j = 0 , m = data[i].length ; j < m ; j++ ){//trimも同時に行っておく data[i][j] = data[i][j].replace( /(^\s+)|(\s+$)/g , "" ); } }
2行目でブラウザごとの改行コードの差を吸収するため、改行コードをいったん\nに統一。テキストエリアの先頭と末尾に余計な改行が入っていると正しく処理できないので、3行目で空白行を除去。4行目で改行コードで分割し、いったん仮の配列に代入。7行目からカンマとタブでさらに分割。10~12行目はtrimで文字列の最初と最後に入った空白を除去している。
スポンサーリンク
JavaScriptカテゴリーの投稿
- [Gmaps.js] 地図をドラッグした後の中心座標を取得する
- [jQuery] 文字列が含まれているかどうかの判定
- 圧縮後のJavaScriptやHtmlを元に戻すWebサービス
- Google Code Prettify導入が超絶簡単になっていた
- [JavaScript] 全角を2、半角を1と数えるコード
- [JavaScript] 指定範囲内の整数からランダムな値を得る
- [JavaScript] sort()メソッドによる配列の並び替え
- シンタックスハイライター「Google Code Prettify」のカスタマイズ
- [JavaScript] オブジェクトにプロパティを追加
- [JS] 正規表現の特殊文字を置換するJavaScript版preg_quote()