• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:半角数字以外の文字をチェックしたい)

半角数字以外の文字をチェックする方法

このQ&Aのポイント
  • 現在、テキストフォームを利用していますが、半角数字以外の文字をチェックしたいです。
  • このテキストフォームでは、onChange のときに、this.value に小数点を除く半角数字以外の文字があると、false を返すようにしたいです。
  • 正規表現を使って実現できるはずですが、正規表現についての理解が不十分です。助けていただけると助かります。

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

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

this.valueに検査したい文字列が入っているとすると、  if( this.value.match(/\D/) ) {return false;} または  if( !this.value.match(/^\d*$/) ) {return false;} なお、正規表現において、 \d は数字で[0-9]と同じ、 \D 数字以外の文字で[^0-9]と同じです。

KanjiTalk
質問者

お礼

詳しい説明付きで、また一つ勉強になりました。ありがとうございます。

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

関連するQ&A

  • IEで動くのに、Firefoxで動かない場合

    すみません。似たような質問を確認しましたが、自分の例とどうリンクしていいか判断できず、大変申し訳ないのですがご教示ください。 下記のようにテキストボックスに入った数字を合計するJavascriptを書きました。IEでは動きますが、Firefoxではそもそもテキストボックスに数字を入力することもできません。お分かりになる方、改善方法をご教示願えませんでしょうか。 よろしくお願いいたします。 <HTML> <HEAD> <SCRIPT language=JavaScript type=text/javascript> <!-- function sum(){ var listpage = document.forms ['listPageForm'] ; var value1 = parseFloat (listpage.elements ['TX_1'].value) ; var value2 = parseFloat (listpage.elements ['TX_2'].value) ; var value3 = parseFloat (listpage.elements ['TX_3'].value) ; if(isNaN(value1) || value1=="") value1 = 0; if(isNaN(value2) || value2=="") value2 = 0; if(isNaN(value3) || value3=="") value3 = 0; var sample_sum = value1 + value2 + value3; listpage.elements ['TX_4'].value = sample_sum.toString (); if(listpage.elements ['TX_1'].value.substring(0,1)=='0') listpage.elements ['TX_1'].value = value1; if(listpage.elements ['TX_2'].value.substring(0,1)=='0') listpage.elements ['TX_2'].value = value2; if(listpage.elements ['TX_3'].value.substring(0,1)=='0') listpage.elements ['TX_3'].value = value3; if(listpage.elements ['TX_1'].value=='') listpage.elements ['TX_1'].value = 0; if(listpage.elements ['TX_2'].value=='') listpage.elements ['TX_2'].value = 0; if(listpage.elements ['TX_3'].value=='') listpage.elements ['TX_3'].value = 0; } function check(){ var flag = 0; if(document.listPageForm.TX_4.value == "100"){ flag = 1; } if(flag){ return true; } else{ window.alert('合計が100%になりません。'); return false; } } //--> </SCRIPT> <FORM name="listPageForm" onSubmit="return check()"> <TD><INPUT onkeypress='if(event.keyCode<"0".charCodeAt(0) || "9".charCodeAt(0)<event.keyCode) return false;' onkeyup=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_1" value="_TX_1_">% </TD> <TD><INPUT onkeypress='if(event.keyCode<"0".charCodeAt(0) || "9".charCodeAt(0)<event.keyCode) return false;' onkeyup=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_2" value="_TX_2_">% </TD> <TD><INPUT onkeypress='if(event.keyCode<"0".charCodeAt(0) || "9".charCodeAt(0)<event.keyCode) return false;' onkeyup=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_3" value="_TX_3_">% </TD> <TD><INPUT onkeypress='if(event.keyCode<"0".charCodeAt(0) || "9".charCodeAt(0)<event.keyCode) return false;' onkeyup=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_4" value="_TX_4_">% </TD>

  • 全角の英数字と記号を半角に変換する方法について

    フォームに電話番号や郵便番号を入力する時に、 強制的に「"ime-mode: disabled;"」で半角入力するようにし、 カスタム関数「 chkCode(id)」を使いメモ帳などからコピー&貼付けをした時に、 全角の英数字が自動で半角の英数字に変換されるにしました。 いろいろと調べてみたのですが、記号を全角から半角に変換する方法が分かりません。 ゴールまであともう少しのところまでなのですが、 アドバイスを頂ければ幸いです。 よろしお願いいたします。 【スクリプト】 <!--半角変換ー--> function chkCode(id) { work=''; for (lp=0;lp<id.value.length;lp++) { unicode=id.value.charCodeAt(lp); if ((0xff0f<unicode) && (unicode<0xff1a)) { work+=String.fromCharCode(unicode-0xfee0); } else if ((0xff20<unicode) && (unicode<0xff3b)) { work+=String.fromCharCode(unicode-0xfee0); } else if ((0xff40<unicode) && (unicode<0xff5b)) { work+=String.fromCharCode(unicode-0xfee0); } else { work+=String.fromCharCode(unicode); } } id.value=work; } 【フォーム】 <input type="text" name="text01" value="連絡先" size="60" style="width:300px;" "ime-mode: disabled;" onkeyup="chkCode(this);" onfocus="if (this.value == defaultValue) this.value = '';" onblur="if (!this.value) this.value = defaultValue;">

  • フォームから送った半角カナの文字化け回避

    こんにちは。 フォームのテキストボックスで半角カナを入力して送信すると、文字が化けることがあります。 どうにか回避できないでしょうか、、、^^; 「半角カナを入力するな!」という常識的な回答(笑)はナシでお願いします。^^; ちなみに、ソースは以下です。 最初submitのところのname属性を書いていなかった時はすべて文字化けを起こしていたのですが、name属性を追加したら最初の入力だけ化けることがある、という現象が置きました。 ちょっとはまってます、、、>< <? header( 'Content-Type: text/html;charset=Shift_JIS' ); echo( "<html>\n" ); echo( "<head>\n" ); echo( "<title>文字送信テスト</title>\n" ); echo( "</head>\n") ; echo( "<body>\n" ); if(isset($mode) == FALSE || $mode == ""){ echo( "<form action=\"test.php\" method=\"post\">\n" ); echo( "<input type=\"hidden\" name=\"mode\" value=\"1\">\n"); echo( "<input type=\"text\" name=\"KANA\" istyle=\"1\"><br>\n" ); echo( "<input type=\"submit\" name=\"\" value=\"送信\">\n" ); echo( "<input type=\"reset\" value=\"クリア\">\n" ); echo( "</form>\n" ); }else{ echo("KANA=$KANA<br>\n"); } echo("</body>\n"); echo("</html>\n"); ?>

    • ベストアンサー
    • PHP
  • java。html。jsp起動はどうすればいいの? 

    java。html。jsp起動はどうすればいいの?  下記の例のとき。 1)登録ボタン、照会ボタンが押されたら任意のjspを起動したいです。 2)jsp起動による処理以外にも もっと良い方法があれば教えてください。 受注N0 <input type=text name=order_no style="ime-mode: disabled;"><br> 受注日 <input type=text name=order_date style="ime-mode: disabled;"><br> 発注者名<input type="text" name="order_date" size="40" maxlength="20" style="ime-mode: active;"><br> 製品名 <input type=text name=order_date style="ime-mode: active;"><br> 受注量 <input type=text name=order_date style="ime-mode: disabled;"><br> </font> <input type=submit value="登録" name=btn1> <input type=reset value="クリア" name=btn2> <input type="button" value="終了" onClick="javascript:window.close();"> <input type=submit value="照会" name=btn4> 以上宜しくお願いします。

    • ベストアンサー
    • Java
  • disabledの点で。2

    また同じソースでの質問なのですが、以下のようなソースで、1のテキストボックスに過去に入力したもの(プルダウンみたいに下がって出てくる履歴のようなもの)を選択すると、2の方の入力ができなくなります。履歴の数字を入れても2の方に記入できるようにするにはどのようにしたら良いのでしょうか。また、これらの処理を行うとき、onChange以外のものを使ってできるのでしょうか?大変困っております、よろしくお願いします。 <html> <head> <title></title> <script language="JavaScript"> <!-- function setTF(){ if(document.form1.text1.value=="") document.form1.text2.disabled = true; else document.form1.text2.disabled = false; } //--> </script> </head> <body> <form name="form1"> 1<INPUT type="text" name="text1" onChange="setTF()"> 2<INPUT type="text" name="text2" disabled> <INPUT type="submit" value="登録" onClick="return setTF()" name="submit"> </form> </body> </html>

  • アラートチェック_javascript

    javascript初心者です。 15個のテキストボックスに0or1のみ入力されるようにチェックを行いたいです。 ★のところでランタイムエラーが出ます。 <SCRIPT LANGUAGE="javascript"> <!-- var isFristTime = false; function fn_submit(obj) { for(var a=1; a<16; a++){ var flag = "fl1_" + a; ★ if(obj.flag.value.match(/^[0-1\s]$/)){ alert("フラグは0か1のみです。"); break; } } } // --> </script> </head> <body> <form name="form0" action="alert_test.asp" method="POST" OnSubmit="return fn_submit(this);"> <table border="1" bordercolor="#000000" rules="none"> <tr> <% for i=1 to 15 flag = "fl1_"&i %> <td>フラグ<%= i%></td> <td width="50" align="left"> <input type="text" name=<% =flag %> style="IME-MODE: disabled" size="2" maxlength="1" value="0"></td> <tr> <% next %> </tr> </table> <input type="submit" value="チェック"> </form>

  • disabledの点で。

    このソースを開いて、更新ボタンをクリックすると、 2の方のテキストボックスが半透明になりますが、それは半透明にしないようにすることは可能なのでしょうか。 お願いします。 <html> <head> <title></title> <script language="JavaScript"> <!-- function setTF(){ if(document.form1.text1.value=="") document.form1.text2.disabled = true; else document.form1.text2.disabled = false; } //--> </script> </head> <body> <form name="form1"> 1<INPUT type="text" name="text1" onChange="setTF()"> 2<INPUT type="text" name="text2" disabled> <INPUT type="submit" value="登録" onClick="return setTF()" name="submit"> </form> </body> </html>

  • 一部スクロール表示が含まれる画面を印刷する方法

    ホームページ画面の一部に縦スクロールの設定をしております。 画面上に印刷ボタンを作成し、プリントアウトしたいと考えておりますが、ファイル→印刷と押すと表示された部分のみしか印刷されません。 どなたかご存じでしたらご教示願います。 【HTML】 <div style="top : 161px;left : 8px; position : absolute; z-index : 4; width : 847px; height : 252px; " id="Layer5"> <div style="background: white; padding: 10px; margin-bottom: 10px; border: 1px solid #333333;" class="test"> <table border="1" height="252" width="818"> <tr bgcolor="gray" style="color:white" height="50"> <th height="42" size=10><b>注文日</b></th> <th height="42" width="212">品物・オプション<br>注文先・単価</th> <th height="42" size=10>金額/個数</th> <th height="42" size=20><b>発注者/入力者</b></th> </tr> <% for(var i in content) { %> <tr bgcolor="lightyellow" > <% var obj = content[i]; %> <td align="center" height="47" size="10"> <input type="text" name=注文日 size="10" style="background:white; color:#000000;" align="middle" value="注文日" disabled="disabled"> </td> <td align="center" height="47" width="10" style="white-space:nowrap;" > <input type="text" name=品物 size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.品物 %>" disabled="disabled"> <input type="text" name=option size=1 style="background:white; color:#000000;" align="middle" value="" disabled="disabled"> <input type="text" name=品物2 size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.品物2 %>" disabled="disabled"> <input type="text" name=option2 size=1 style="background:white; color:#000000;" align="middle" value="" disabled="disabled"> <input type="text" name=品物3 size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.品物3 %>" disabled="disabled"> <input type="text" name=option3 size=1 style="background:white; color:#000000;" align="middle" value="" disabled="disabled"><br> <input type="text" name=tyumonsaki size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.order_destination %>" disabled="disabled"> <input type="text" name=単価 size=1 style="background:white; color:#000000; text-align: right;" align="middle" value="<%= obj.単価 %>" disabled="disabled"> <input type="text" name=tyumonsaki2 size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.order_destination2 %>" disabled="disabled"> <input type="text" name=単価2 size=1 style="background:white; color:#000000; text-align: right;" align="middle" value="<%= obj.単価2 %>" disabled="disabled"> <input type="text" name=tyumonsaki3 size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.order_destination3 %>" disabled="disabled"> <input type="text" name=単価3 size=1 style="background:white; color:#000000; text-align: right;" align="middle" value="<%= obj.単価3 %>" disabled="disabled"> </td> <td align="center" height="47" size=10> <input type="text" name=合計金額 size=10 style="background:white; color:#000000; text-align: right;" align="middle" value="<%= obj.合計金額 %>" disabled="disabled"> <input type="text" name=合計数 size=10 style="background:white; color:#000000; text-align: right;" align="middle" value="<%= obj.合計数 %>" disabled="disabled"> </td> <td align="center" height="47" size=20> <input type="text" disabled="disabled" name=発注者 size=20 style="background:white; color:#000000;" align="middle" value="<%= obj.発注者 %>"> <input type="text" disabled="disabled" name=入力者 size=20 style="background:white; color:#000000;" align="middle" value="<%= obj.入力者 %>"> </td> </tr> <% } %> </table> </div> </div> 【CSS】 .test { height: 250px; overflow-y: scroll; }

  • IE7のonChangeイベントを使用して入力チェック

    textフィールドのonchangeイベントでjavascriptの入力チェックを行い、エラー時はフォーカスをエラー項目に戻し、カーソルを移動できないようにしたいです。 --想定している動作 (1)test1_fieldに1以外の値を入力し、tabなどで移動する。 (2)javascriptのcheck1()でエラーチェック。エラー「test1_field NG」が表示され、カーソルがtest1_fieldに戻る。 再度、カーソルを移動しようとすると、(2)の動作を行う。 --実際の動作 IE6(XP+IE6sp2)では、以下のテストスクリプトで想定している動作をしていたのですが、IE7(Vista+IE7)では、return falseを返しても、test2_fieldにフォーカスが移動できてしまいます。 --テストコード <html> <script> function check1(obj){ if (obj.value==1){ return true; } alert("test1_field NG"); obj.focus(); obj.select(); return false; } function check2(obj){ if (obj.value==2){ return true; } alert("test2_field NG"); obj.focus(); obj.select(); return false; } </script> test1_field:<input type="text" name="test1_field" onchange="return check1(this)" >(1のみOK)<br><br> test2_field:<input type="text" name="test2_field" onchange="return check2(this)" >(2のみOK) </html> 記述等に間違いがあるのでしょうか? ご教授いたがければ幸いです。

  • フォームのname値を配列にしてJavaScriptでフォームのチェックをする方法

    JavaScriptでフォームの半角数字のチェックをしたいのですが、 form内容をCGI(PHP)に渡すためname値を配列にしないといけないのですが、 以下のスクリプトだとエラーが出てしまいます。 *実際はif(isNaN~)と<input~>をループで書き出しており、行数が不特定なので それぞれ別のname値を使うことができない状態です。 <script language="JavaScript"> function check() { if(isNaN(document.form1.hoge[0].value)){ alert("値は半角数字で入力してください。"); return(false); } if(isNaN(document.form1.hoge[1].value)){ alert("値は半角数字で入力してください。"); return(false); } return(true); } </script> <form method="post" action="xxx.cgi" onSubmit="return check()" name="form1"> <input type="text" name="hoge[0]"> <input type="text" name="hoge[1]"> </form> 特にCGIに渡す必要がなければ <input type="text" name="hoge"> <input type="text" name="hoge"> としてやればチェックができるのですが、どうしても次の 処理があるためname値を配列にする必要があります。 解決方法がわかる方がおられましたらご教授ください。 以上よろしくお願いいたします。

このQ&Aのポイント
  • 直列の電解コンデンサにDC電圧をかけることについての問題について解説します。
  • 直列の電解コンデンサにDC電圧をかけることで、コンデンサの動作や耐久性に影響が出る可能性があります。
  • そのため、適切な電圧設計や適性なコンデンサの選定が重要です。
回答を見る

専門家に質問してみよう