正規表現をまとめる方法とは?

このQ&Aのポイント
  • 正規表現をまとめるにはどのような方法があるのでしょうか?
  • 正規表現を使って文字列を置換する方法をまとめました。
  • 正規表現を使って複数の文字列を一括で変換する方法について解説します。
回答を見る
  • ベストアンサー

正規表現をまとめることってできますか?

正規表現をまとめるにはどうしたらよいでしょうか? var str = document.forms[0].school_list.value; if (str == "") return; var result = ""; for (var i = 0; i < str.length; i++) result = str.replace(/,/g,'\n'); document.forms[0].result_school_list.value = result; document.forms[0].result_school_list.select(); var str = document.forms[0].result_school_list.value; if (str == "") return; var result = ""; for (var i = 0; i < str.length; i++) result = str.replace(/、/g,'\n'); document.forms[0].result_school_list.value = result; document.forms[0].result_school_list.select();

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

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

result = str.replace(/、/g,'\n'); を result = str.replace(/,|、/g,'\n'); とするか result = str.replace(/[,、]/g,'\n'); とします forループの意味がよくわかりませんが…

itochin16
質問者

お礼

返事ありがとうございます。forは気にしないで下さい。 補足ですが、こういう方法でまとめることができました。 result = str.replace(/,/g,'\n').replace(/、/g,'\n').replace(/ {1,}/g,'\n').replace(/ {1,}/g,'\n').replace(/\t/g,'\n');

関連するQ&A

  • 検索表示について

    このようなプルダウン付きの検索バーを作成しています。 この検索結果をこの検索バーの下に表示させるためにはどうすればいいでしょうか?よろしくお願いします。 <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <script type="text/javascript"> <!-- var site = new Array(); var target = "main"; site[0] = ["Goo", "http://search.goo.ne.jp/web.jsp", "MT", ["from", "USR"], ["IE", "sjis"]]; site[1] = ["Google", "http://www.google.com/search", "q", ["hl", "ja"], ["ie", "Shift_JIS"]]; site[2] = ["Yahoo", "http://search.yahoo.co.jp/bin/search", "p",["ei", "Shift_JIS"]]; window.onload = function() { if (!document.createElement) return; if (document.all && !window.clipboardData && !window.opera) return; // 検索サイトのリストを生成 var select = document.createElement("select"); select.id = "addlist"; for (var i = 0; i < site.length; i++) { var opt = document.createElement("option"); opt.value = i; var str = document.createTextNode(site[i][0]); opt.appendChild(str); select.appendChild(opt); } // デフォルトで選択状態にする場合はその配列番号を option[n] に指定 // select.options[3].selected = true; // 既存の検索フォームにこのドロップダウンを追加 var obj = document.forms[0]; obj.elements[obj.elements.length - 1].value = "検索"; obj.insertBefore(select, obj.elements[1]); // フォームが送信された時に selectSearch() を呼び出す obj.onsubmit = selectSearch; } function jump(){ var url = document.form.select.options[document.form.select.selectedIndex].value; if(url != "" ){ if(target == 'top'){ top.location.href = url; } else if(target == 'blank'){ window.open(url, 'window_name'); } else if(target != ""){ eval('parent.' + target + '.location.href = url'); } else{ location.href = url; } } } function selectSearch() { var str = document.forms[0].p.value; // 入力された検索文字 var num = document.forms[0].addlist.value; // 選択されたリストの番号 // 選択された検索サイトのフォーム生成(送信先の指定) var setform = document.createElement("form"); setform.action = site[num][1]; setform.method = "GET"; // setform.target = "_blank"; // 検索結果を新しいウインドウに表示する場合に追加 // 検索文字クエリ var query = document.createElement("input"); query.type = "hidden"; query.name = site[num][2]; query.value = str; setform.appendChild(query); // 検索文字以外のクエリ if (site[num].length > 3) { for (var i = 3; i < site[num].length; i++) { var extra = document.createElement("input"); extra.type = "hidden"; extra.name = site[num][i][0]; extra.value = site[num][i][1]; setform.appendChild(extra); } } // 生成したフォームを文末に追加してそのフォームを送信 document.body.appendChild(setform); setform.submit(); // document.forms[document.forms.length - 1].submit(); return false; } // --> </script> <br> <form action="http://search.yahoo.co.jp/bin/search" method="GET"> <input type="text" name="p" value="" size="50" maxlength=255 > <input type="submit" value="検索"> </form> </body> </html>

  • 正規表現について

    function df(){ var sty=0; if(!document.ad.ad1.value.match(/[^0-9]+/)){ sty=1; } if(sty){ alert("違います"); return false; } else{ return ture; } } 一点だけわかりません。 (/[^0-9]+/)です。 普通に[0-9]で数字のみにすればいいのに /とか^はなんの意味があるんでしょうか?

  • 検索バーについて

    現在、下のソースを使い検索サイトを作成しています。今、yahooやgoogleのようにtopページでキーワードを入力して検索するところを作成できたのですが、その検索結果を結果ページで表示したいのですが、どうしても表示できません。ソースは下のとおりです。アドバイス等よろしくお願いします。説明が下手ですみません。 (topページ) <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <script type="text/javascript"> <!-- var site = new Array(); site[0] = ["Google", "http://www.google.com/search", "q", ["hl", "ja"], ["ie", "Shift_JIS"]]; site[1] = ["Yahoo", "http://search.yahoo.co.jp/bin/search", "p",["ei", "Shift_JIS"]]; window.onload = function() { if (!document.createElement) return; if (document.all && !window.clipboardData &&!window.opera) return; var select = document.createElement("select"); select.id = "addlist"; for (var i = 0; i < site.length; i++) { var opt = document.createElement("option"); opt.value = i; var str = document.createTextNode(site[i][0]); opt.appendChild(str); select.appendChild(opt); } var obj = document.forms[0]; obj.elements[obj.elements.length - 1].value = "検索"; obj.insertBefore(select, obj.elements[1]); obj.onsubmit = selectSearch; } function selectSearch() { var str = document.forms[0].p.value; var num = document.forms[0].addlist.value; var setform = document.createElement("form"); setform.action = site[num][1]; setform.method = "GET"; setform.target = "_blank"; var query = document.createElement("input"); query.type = "hidden"; query.name = site[num][2]; query.value = str; setform.appendChild(query); if (site[num].length > 3) { for (var i = 3; i < site[num].length; i++) { var extra = document.createElement("input"); extra.type = "hidden"; extra.name = site[num][i][0]; extra.value = site[num][i][1]; setform.appendChild(extra); } } document.body.appendChild(setform); setform.submit(); return false; } // --> </script> <form action="http://search.yahoo.co.jp/bin/search" method="GET"> <input type="text" value=""> <input type="submit" value="検索"> </form> </body> </html> (結果ページ) <html lang="ja">     : topページのソースと全て同じソースです。 : </form> <iframe src="#" width="100%" height="82%" scrolling="yes" name="main" frameborder="0">ブラウザ</iframe> </body> </html>

  • javascript 要素取得

    htmlでチェックボックスを作り、その値をjavascriptで取得したいと思い、 下記のようなプログラムを書きました。 セレクトボックスから複数選択できるようにしたいのですが、 表示されるのは複数選んだ際に一番初めに選択したものだけです。  例) 「あああ」と「いいい」を選ぶと「あああ」のみ表示される。 しかし、これを「あああ.いいい」としたいのです。 できれば、 「あああ  いいい」 と改行できるといいです。 formの中にたくさんの項目があるため、 forのところがうまくいっていないのでしょうか? どなたかよろしくお願いします。 javascript側 function checkbox(){  var str="";  for(i=0;i<document.form1.elements.length;i++){   if(document.form1.elements[i].checked){     if(str != "") str = str + ".";     str = str + document.form1.document[i].value;   }  }  if(str == ""){   alert("入力してください");   return false;  }else{   document.form1.submit();  } } HTML側 <form action="<%=遷移先ページ%>" method="post" name="form1"> <select 複数> <input 複数> <input type="checkbox" name="document" value="・あああ"/>あああ <input type="checkbox" name="document" value="・いいい"/>いいい <input type="checkbox" name="document" value="・ううう"/>ううう <input type="submit" value="Submit" onclick="return checkbox();">

  • チェックボックスの選択チェック

    ラジオボタンの選択チェック、セレクトボタンの選択チェックのあとにチェックボックスの選択チェックをしたいのですが、どのように入れればよいのでしょうか。教えてください。 ↓参考までに↓ function check() { var flag=0; if( document.form1.seibetu.length){ flag=1; var i; for(i=0; i<document.form1.seibetu.length; i++) if(document.form1.seibetu[i].checked)flag=false; } if(flag){ alert('性別が選択されていません'); return false; } if(document.form1.nenrei.value=="")flag=true; if(flag){ alert('年齢が選択されていません'); return false; } if( document.form1.Q1.length){ flag=1; var i; for(var i=0; i<document.form1.Q1.length; i++) if(document.form1.Q1[i].checked)flag=false; if(flag){ alert('Q1が選択されていません'); return false; } else {★★★ここに入れたい★★★   ;} } }

  • 初歩サンプル(値の型?)でつまづいてます。。

    HTMLとスタイルシートしかわからず、初のプログラミング言語としてJavascriptを選びました。 とりあえず入門書籍のサンプルを見ながら勉強しているのですが、 さっそくfor文というか、値の型?で混乱してます。。 【Javascript部分】 function doClick(){ var str = ""; //←(1) var n = document.form1.select1.options.length; for(var i = 0;i < n;i++) if (document.form1.select1.options[i].selected)    str += document.form1.select1.options[i].value + ","; //←(2) var str = "選択項目:" + str ; document.getElementById("showText").innerHTML = str; } 【HTML部分】 <p>※テスト用ページ</p> <div name="showText" id="showText">(※未設定)</div> <form name="form1"> <select name="select1" size="3" multiple> <option value="あいうえお">あいうえお</option> <option value="かきくけこ">かきくけこ</option> <option value="さしすせそ">さしすせそ</option> </select> <input type="button" value="送信" onClick="doClick();"> </form> options.lengthで配列の総数を数えて、真偽値を調べfor文で繰り返し、結果を反映させる部分はわかります。 わからない部分は、 (1)「var str = "";」の「""」は空の文字列を代入?ということでしょうか? 試しに消し見ると「undefined」が記述されるのですが…… 型を定義してないと起こる?問題のようで、型の宣言のようなものということでしょうか? (2)str += document.form1.select1.options[i].value + ","; for文中で、最初の一回目は「""+あいうえお+","」、二回目は「""+あいうえお+","+かきくけこ+","」……と繰り返されていくと思うのですが、(1)の意図がわからないので、「""」の空部分の意味が理解できません。 たぶんとるに足らない疑問のような気がするのですが…… ご教授いただけるとうれしいです。 ※蛇足なんですが、for文やif文に中括弧{}がついてなくても動きはしますが、つけないのがベターなのでしょうか? (入門書籍なのでスタンダートを書いてるとは思うのですが……)

  • javascript

    var sum = function(){ var result = 0; for(var i = 0; i < arguments.length; i++){ var tmp = arguments[i]; result += tmp; } return result; } document.writeln(sum(1, 3, 5, 7, 9)); このプログラムと function sum(){ var result = 0; for(var i = 0; i < arguments.length; i++){ var tmp = arguments[i]; result += tmp; } return result; } document.writeln(sum(1, 3, 5, 7, 9)); このプログラムでは実行結果は同じですが、 どちらのほうが良いプログラムなのでしょうか?

  • ラジオボタンの値を取得する引数付き関数を作りたい

    フォームの入力内容をチェックするJAVASCRIPTの関数を作成していますが、ラジオボタンのValueを取得することができません。 引数指定の関数を作成して汎用的に使用したいと考えているのですが、引数を渡すと値を返してくれません。 引数の渡し方がおかしいのでしょうか? function getRadioValue(str){ // 値を取得する関数 var check, num, value="none"; num=document.form1.str.length; for (i=0;i<num;i++) { check=document.form1.str[i].checked; if (check) value=document.form1.str[i].value; } return value; } function check(){ // 入力内容をチェックする if (getRadioValue("タイプ") == "A"){ hogehoge } : : }

  • javascriptのエラーを修正したいです。

    javascriptのエラーを修正したいです。どなたか教えて下さい。 下記のjsの内容でシンタックスエラーが出ます。indexページを自動で14通り変更する設定の一部なのですが どうしてもエラーを解除できません。知識不足ですいませんがどなたか教えて頂けませんでしょうか? function check(y){return (y%4==0&&(y%400==0||y%100!=0))?true:false;}//うるう年チェック関数 if(addr.charAt(addr.length-1)!="/") addr += "/"; var list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var date = new Date(); var today = [date.getYear(),date.getMonth()+1,date.getDate()]; var t_r = refer[0]*365+refer[2]; var t_t = today[0]*365+today[2]; if(check(refer[0])) ++refer[0]; if(check(refer[1])) ++refer[1]; for(var i=0;i<refer[1]-1;++i)t_r += list[i]; for(var i=0;i<today[1]-1;++i)t_t += list[i]; var str = addr+format.replace("NN",("0"+((t_t-t_r+1)%length)).slice(-2)); if(mode==0) = location.href= str; else document.getElementById("frame").src = str; </script> if(mode==0) = location.href= str; else document.getElementById("frame").src = str; この部分がシンタックスエラーが出ます。どのように修正すれば良いでしょうか? この上記の部分の正しい記述の仕方を教えて頂けると助かります。 よろしくお願い致します。

  • チェックしなくても、確認のウインドウがでる

    チェックしなくても、確認のウインドウがでてしまうのですが、どこがいけないのでしょうか <SCRIPT language=JavaScript> function SubmitCheck() } if (document.Order.elements[kiyaku_fn].value == ""){ return false; } else if (document.Order.elements[kiyaku_fn].value == "同意"){ alert("規約に同意して下さい"); return false; } var confirm_str = ""; confirm_str = "下記の事項をご確認ください。\n" + "正しければ、OKを押してください。\n" + "--------------------------------\n" + "規約:" + document.Order.elements[kiyaku_fn].value + "\n\n"; temp = 0; confirm_str += "--------------------------------\n"; if(confirm(confirm_str)){ return true; } else return false; return true; } </SCRIPT> <INPUT id=checkbox1 type=checkbox value="同意" name=checkbox1>規約

専門家に質問してみよう