• 締切済み

javascriptでの正規表現について

javascript正規表現にて正の整数および小数(半角のみ) を判別したいのですがうまくいきません。どうすればいいのでしょうか。<script language=javascript> function StrCheck(strSrc){ var value = strSrc.value; if (value.match(/[0-999]+¥.[0-99]/)==true){ alert("半角数字のみで入力して下さい"); } </script> ); 以上のようにつくってみましたが、半角でも全角でも「半角を入力してください」というメッセージがでてしまいます。これを全角のみでエラー表示がでるようにしたいのですがどうしたらよいのでしょうか。参考になるWEBページでもあれば教えてください。ご教授の程よろしくお願い申し上げます。

みんなの回答

  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.1

うーん、 function StrCheck(strSrc){ var value = strSrc.value; if (value.match(/^[0-9]+(\.[0-9]+)?$/)) { // ←特にここ alert("半角整数か少数のみ! OK!!"); } else { alert("ダメポな悪寒!!"); } } </script>の次の行に「);」みたいなのが見えますが、 これは投稿ミスか、何かの都合で必要なんだろうとみなして私的にはスルーしときます。 投稿したのは、本当に「数字だけ」が入力されるんだろうということに絞っていますので、 「実は長い文章の中での判定です」とか、「数字の後に単位が付いてることも許すんです」 ということであれば、正規表現を変更する必要があります。

nikiusp
質問者

お礼

期待どうり動きました。ありがとうございました。

関連するQ&A

  • JavaScriptの正規表現について

    お世話になります。 HTMLでテキストに入力された数値のチェックを下記のようにJavaScriptで行っています。 ---------------------------------------------------------  function check_num(obj) {')   obj_w = document.form_name.elements[obj];')   if(obj_w.value.match(/^\d{0,1}(\.\d{1,3})?$/)){    return 0;   else{    alert("測定値は整数部分1桁、小数部分3桁までの正の数値を入力して下さい。")    obj_w.focus();    return 1;   }  } ----------------------------------------------------------- このとき、チェックする整数部分、小数部分の桁数を変数にして汎用性のある関数にしたいのですが、正規表現のなかで変数を使うにはどのようにしたらよいのでしょうか? よろしくお願い致します。

  • javascriptを勉強し始めました

    それで簡単なアンケートを作りたいと思い、入力フォームを作って間違えている箇所があれば確認ボタンを押したときに入力に誤りがある項目をアラートで出し、そのアラートに誤っている項目をそのアラート一つにまとめて出したいのですが、出ません。わかないので質問させていただきました。よろしくお願いします。ソースになります。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>課題</title> <script language ="javascript"> <!-- function datachk(){ if(document.form1.last.value == "") { alert("・氏名(姓)が入力されていません。"); }else{ if(document.form1.last.value.match( /[^一-龠ァ-ヶぁ-ゞA-Z]+/ ) ){ alert("・氏名(姓)は、全角文字のみで入力して下さい。"); }else{ if(document.form1.first.value == "") { alert("・名前(名)が入力されていません。"); }else{ if(document.form1.first.value.match( /[^一-龠ァ-ヶぁ-ゞA-Z]+/ ) ){ alert("・名前(名)は、全角文字のみで入力して下さい。"); } } } } } //--> </script> </head> <body> <div align="center"> 情報入力 </div><br> <br> 以下に、情報を入力してください。<br> <br> <form name = "form1"> *氏名(姓): <input type = "text" name = "last" value = ""><br> (全角10字入力可)<br> *氏名(名): <input type = "text" name = "first" value = ""><br> (全角10字入力可)<br> *性別: <input type = "radio" name = "men" value = "男">男 <input type = "radio" name = "women" value = "女">女<br> <input type="button" value="回答" onClick="javascript:datachk();"><br> </form> </body> </html>

  • 正規表現を用いた整数、少数のチェック

    どうかご教授下さい。 現在JavaScriptによるプログラミングを行っています。 テキストボックスから入力された年齢、身長の値を 正規表現を用いて下記の条件をチェックしようとしていますが上手くいきません。 [条件] ●年齢● 0以上の整数。 半角数字。 0以外の頭に0が来る数字は許可しない。(例:00、012) ●身長● 0より大きい整数または少数。 半角数字、小数点。 整数の場合0以外の頭に0が来る数字は許可しない。(例:00、012) 少数の場合最下位の数字は小数点、0以外のものである。 [現状] ●年齢● 半角数字があれば半角数字以外を許可してしまう。(例:a1、1あ) 0以外の頭に0が来る数字を許可してしまう。(例:00、012) ●身長● 0以外の数字があれば最下位の数字が0でも許可してしまう。(例:123.0) 2つ以上の小数点を許可してしまう。(例:12.3.4、12..3) 上記以外にも自分で気付いていない問題があるかもしれませんが どうか助言頂きたく思います。 宜しくお願いします。 if(age.match(/(0|[1-9][0-9]*)/)){} else{ alert("年齢を半角数字で入力してください。"); } if(height.match(/([1-9][0-9]*|[0-9]+([\.][0-9]+)?[1-9]$)/)){} else{ alert("身長を半角数字で正しく入力してください。"); }

  • 2つのjavascriptを組み合わせたい

    フォームメール用の2つのjavascriptがあります。 ●2重送信防止とデータ送信後指定ページへ遷移するjavascript ●テキストボックスが空欄だった時にアラートを表示するjavascript の2つです。 この2つを組み合わせようとしたのですが、うまく動きません。 ご指導いただきたくお願いいたします。 *************************************************** 【●2重送信防止とデータ送信後指定ページへ遷移するjavascript】【動きます】 送信ボタン押下後、2重送信を防止しながら、データ送信後は「location.href = "finish.html"」でfinish.htmlを表示します。 <script type="text/javascript" src="js/jquery.js"></script> <script> jQuery(function($) { $('#form1').submit(function(event) { // HTML送信キャンセル event.preventDefault(); //フォーム要素取得 var $form = $(this); // 送信ボタンを取得 // (後で使う: 二重送信防止) var $button = $form.find('button'); // 送信 $.ajax({ url: $form.attr('action'), type: $form.attr('method'), data: $form.serialize() + '&delay=1', timeout: 10000, // 送信前 beforeSend: function(xhr, settings) { // ボタン無効二重送信防止 $button.attr('disabled', true); }, // 応答後 complete: function(xhr, textStatus) { // ボタン有効再送信許可 $button.attr('disabled', false); }, // 通信成功処理 success: function(result, textStatus, xhr) { // 入力値初期化 $form[0].reset(); location.href = "finish.html"; }, // 通信失敗処理 error: function(xhr, textStatus, error) { alert('retry');} }); }); }); </script> <form name="form1" id="form1" method="POST" name="form1" action="insert.php"> <input type="text" name="tel" value="" /> <input type="text" name="fax" value="" /> <input type="submit" value="送信A"> </form> *************************************************** 【●テキストボックスが空欄だった時にアラートを表示するjavascript】【動きます】 テキストボックスが空欄だったらアラートを表示します。 <script> function check3() {   var tel3 = document.form1.tel.value;   var fax3 = document.form1.fax.value;   var isValid = true;   if (!tel3) {     alert("電話未入力");     isValid = false;   }   if (!fax3) {     alert("FAX未入力");     isValid = false;   }   if (!isValid) {     return;   }   document.form1.submit(); } </script> <form name="form1" id="form1" method="POST" name="form1" action="insert.php"> <input type="text" name="tel" value="" /> <input type="text" name="fax" value="" /> <input type="submit" value="送信B" onclick="check3();"> </form> *************************************************** 【上記の2つを組み合わせてみました。】【動きません】 テキストボックスが空欄だったらアラートを表示しながら2重ボタン排除&finish.htmlに遷移というものです。 【結果】 「問題なく動くjavascript」2つを単純に組み合わせただけなのですが、 finish.htmlに遷移せずinsert.phpが表示されます。ご指導宜しくお願いします。 <script type="text/javascript" src="js/jquery.js"></script> <script> jQuery(function($) { $('#form1').submit(function(event) { event.preventDefault(); var $form = $(this); var $button = $form.find('button'); $.ajax({ url: $form.attr('action'), type: $form.attr('method'), data: $form.serialize() + '&delay=1', timeout: 10000, beforeSend: function(xhr, settings) { $button.attr('disabled', true); }, complete: function(xhr, textStatus) { $button.attr('disabled', false); }, success: function(result, textStatus, xhr) { $form[0].reset(); location.href = "finish.html"; }, error: function(xhr, textStatus, error) { alert('retry');} }); }); }); </script> <script> function check3() {   var tel3 = document.form1.tel.value;   var fax3 = document.form1.fax.value;   var isValid = true;   if (!tel3) {     alert("電話未入力");     isValid = false;   }   if (!fax3) {     alert("FAX未入力");     isValid = false;   }   if (!isValid) {     return;   }   document.form1.submit(); } </script> <form name="form1" id="form1" method="POST" name="form1" action="insert.php"> <input type="text" name="tel" value="" /> <input type="text" name="fax" value="" /> <input type="submit" value="送信B" onclick="check3();"> </form>

  • 正規表現を使って入力チェックを行う

    JavaScriptで正規表現を用いて半角英数入力チェックを行いたいのですが、うまくいきません。 ご協力お願いします。 --【1】------------------------------------------------- if((element2.value.match(/^[^0-9a-zA-Z]$/)){  document.FORM01.in_AAA.value="";  return false; } ------------------------------------------------------- 【1】では、半角、全角に関わらず正常に処理が行われます。 --【2】------------------------------------------------- if(!element2.value.match(/^[^0-9a-zA-Z]$/)){   document.FORM01.in_AAA.value="";   return false; } ------------------------------------------------------- 【2】にすると、半角、全角ともエラーとなってしまいます。 どのようにすれば、実装できるのでしょうか。 皆さん、よろしくお願いします。

  • Javascript 全角カナ+半角スペース+全角スペースの正規表現について

    初歩的な質問をしてすみません。 一応、自分でも試行錯誤で if (str.match(/[^ア-ンー\- ]+/g)){ alert("フリガナの項目を「全角カタカナ」のみで入力して下さい。"); } という条件を作ってみたのですが、半角スペースを入力したらTrueとなってしまいます。 全角カナ+半角スペース+全角スペース以外はFalseとなる正規表現を教えていただけないでしょうか。 以上、よろしくお願いします。

  • java での全角数値を指定する正規表現について

    はじめまして。 javaでの正規表現についての質問です。 現在私は String line = reader.readLine(); if ( line.matches("^[-]?[0-9]*[.]?[0-9]*") ) 上記のような半角の整数、浮動小数点数、マイナスの入力時にTrueとなり、それ以外はFalseとなるようにしています。 ここに「全角の整数、浮動小数点数、マイナス」もTrueとなるように記述したいのですがうまくいきません。 or 条件にて || line.matches("^[-]?[0-9]*[.]?[0-9]*") と、ただ半角の部分を全角に置き換えたところで改善するものではありませんでした。 どなたか良い改善策教えていただけましたら幸いです。

    • ベストアンサー
    • Java
  • メールアドレス確認 javascriptについて

    入力フォームのメール項目にて 1.メールアドレスチェック 2.メールアドレス(確認用) のアラート設定を行いたいのですが、下記、javascriptの変更をどのように行っていいかが分からず困っています。 どなたかご回答お願いできますでしょう!? ------javascript部分-------------- <script language="JavaScript" type="text/javascript"> function CheckForm(theform) { var FormOK = false; if (theform.email1.value == "") { FieldControl(theform.To, "「メールアドレス」を入力してください。"); }else if (theform.email2.value == "") { FieldControl(theform.To, "「メールアドレス(確認用)」を入力してください。"); }else if (theform.email2.value == "") { FieldControl(theform.To, "入力されたものが一致するように入力してください。"); }else { FormOK = true; } return FormOK; } function FieldControl(element, message) { alert(message); } </script> ------HTML部分-------------- <form action="" method="post" name="theform" onsubmit="return CheckForm(this);"> メールアドレス:<input size="40" name="email1">(半角英数字)<br><br> 確認用】:<input size="40" name="email2"><br><br> <input value="確認画面へ" name="submit" type="submit"> </form> 宜しくお願い致します。

  • javaScriptでアラート設定を教えてください。

    現在入力フォームを作成しておりますが、どうしても設定できない部分がありますので、教えてください。 下記のようなスクリプトを記述していますが、「ナンバー」のエラー表示部分に、半角数字3桁のみの入力設定を行いたいです。 それ以外を入力するとエラーが表示されるように設定を行いたいです。 宜しくお願い致します。 <script> function WriterCheck() { var str = document.dataInputForm.name.value; if( str.match( /[^A-Za-z\s.-]+/ ) ) { alert("名前は、半角英文字のみで入力して下さい。"); return false; } return true; } function CheckForm(dataInputForm) { var FormOK = false; if (dataInputForm.no.value == "") { FieldControl(dataInputForm.To, "ナンバーが未入力です。"); }else if (dataInputForm.title.value == "") { FieldControl(dataInputForm.To, "タイトル名が未入力です。"); }else if (dataInputForm.name.value == "") { FieldControl(dataInputForm.To, "名前が未入力です。"); }else { FormOK = true; } return FormOK; } function FieldControl(element, message) { alert(message); } </script>

  • javaScriptで文字数制限

    フォームを作成していまして、alert指定を行っているのですが、一部半角数字も3桁設定ができなくて困っております。 数字は 100~999 までです。 下記のような記述となります。 どなたか 教えて下さい。宜しくお願い致します。 function WriterCheck() { var str = document.dataInputForm.no.value; if( str.match( /[^0-9]+/ ) ) { alert("ナンバーは半角数字3桁のみで入力して下さい。"); return false; } return true; }

専門家に質問してみよう