• ベストアンサー

textareaに入力されたデータを読み込む

例えば以下のようにtextarea内にデータが入力されているとします(カンマ区切り,スペース区切り,タブ区切りなどはなんでも良いのですが)。 +---ここから---+ 1 2 3 4 5 6 7 8 9 10 11 12 +---ここまで---+ これらのデータを配列に格納する方法が,だいぶネットサーフィンしていたのですが分かりません。 以降,Perlになってしまうのですが,1行ずつ配列にdat=(1,2,3,4)のように格納していくか,あるいは行列(2次配列)の形で格納したいのです。 $pathname="D://datafile.dat"; open MYFILE, "$pathname"; while (<MYFILE>) { chomp; @{"dat$."} = split /,/; } close MYFILE; +----------- $pathname="D://datafile.dat"; open MYFILE, "$pathname"; @dat = map {chomp;[split /,/]} <MYFILE>; close MYFILE;

質問者が選んだベストアンサー

  • ベストアンサー
  • gaku1
  • ベストアンサー率71% (10/14)
回答No.3

No.1です。 例の「12」よりも後ろにある改行等は前処理が必要ですが,次のようにすれば,途中にある連続したスペース,行頭スペース,行末スペースはきにしなくて良さそうです。 No.1をすこし変えて, for(var i in rows){//ここまでは同じ  dat.push(rows[i].match(/¥d+/g)); } 以上

backs
質問者

お礼

度々の回答ありがとうございました。各スペースのことを気にしなくても良くなったのでとても使い勝手がよくなりました

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <script language="JavaScript"><!-- var dat = []; window.onload=function(){ var ta=document.getElementById("DATA"); var rows=ta.value.split("\n"); for(var i=0;i<rows.length;i++){ dat.push(rows[i].split(",")); } //点検 for(var i=0;i<dat.length;i++) for(var j=0;j<dat[i].length;j++) alert(dat[i][j]); } //--> </script> <title>テキストエリアのデータを配列に格納</title> </head> <body> <textarea ID="DATA" cols="20" rows="10">1,2,3,4 5,6,7,8 9,10,11,12</textarea> </body> </html>

backs
質問者

お礼

早速の回答ありがとうございました。わざわざ一通り書いていくだすってとてもありがたいです。

すると、全ての回答が全文表示されます。
  • gaku1
  • ベストアンサー率71% (10/14)
回答No.1

例示されたデータの通りで(数値を区切るスペースは1個),最後の「12」の後ろに改行が入っていないとすると, var str=document.フォームの名前.テキストエリアの名前.value; var dat=new Array(); var rows=str.split("¥n"); for(var i in rows){  dat.push(new Array());  var cols=rows[i].split(" ");  for(var j in cols){   dat[i].push(cols[j]);  } } 以上で,二次元配列datに格納されます(やってみたら格納されました。上はところどころ全角文字が混ざっていますが,半角になおしてください)。 Perlの実例で示されているような「chomp」に相当するものがJavaScriptには用意されていないと思うので,「データをきれいにする(不要な改行や連続したスペース,行頭,行末のスペースなどを取り除く)」は,自分で実装する必要があろうかと思います。

すると、全ての回答が全文表示されます。

関連するQ&A