• ベストアンサー

入力規則で 英数字の2桁-4桁という制限を設けたいのですが。。。

function btn1_onclick() { if(document.input1.Tel.value.search(/^\d{4}$/) != 0){ alert("電話番号を半角英数で入力して下さい。"); } } のようなロジックをならったのですが, 現在はsearchメソッドで半角数字の4桁という制限になっています。 (4文字以上でも以下でもだめ) 2~4文字で半角数字と制限したいのですがどうすればよいでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

2文字以上4文字以下というのは /^\d{2,4}$/ でできます。 ちなみに、2文字以上なら何文字でもという場合は /^\d{2,}$/ です

G3MEN
質問者

お礼

やりたいことができました。 キーワードは正規表現でしたね。。。 ありがとうございました。

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

その他の回答 (1)

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

JavaScriptではなく,違う言語専門の者です。 if文に or を入れれば良いのではないでしょうか。 // 処理 : 入力値チェック function btn1_onclick() { if(document.input1.Tel.value.search(/^\d{2}$|^\d{3}$|^\d{4}$/) != 0){ alert("電話番号を半角英数で入力して下さい。"); } 一応,上ので 2~4 文字の制限はかけられましたよ。  | は or(または) に当たります。 & が and(かつ) に当たります。 電話番号に関してはこちら↓

参考URL:
http://634.ayumu-baby.com/javascript/js_telcheck.html
G3MEN
質問者

お礼

興味深いサイトの紹介,ありがとうございます。 とても参考になります。

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

関連するQ&A

  • テキストボックス入力を半角英数字に制限する

    よろしくお願いします。 テキストボックスに入力される文字を、 半角英数字(英語の場合は大文字のみ)以外入力できないように制限したいのですが可能でしょうか? もしくは半角英数字以外が入力された場合アラートを出すようにしたいのですが。。。 また、文字数の制限も可能でしょうか? 第一希望) 12文字以内の半角英数大文字以外入力できないように入力制限する。 第二希望) 12文字以内の半角英数大文字以外入力の文字が入力されている状況でボタン(=CGI実行)を押すと警告のアラートが出る。 第三希望) 半角英数大文字以外入力できないように制限、もしくはアラート表示。 例) AAAA-1234567 ○(ハイフンを含め12文字以内の半角英数字) AAAA-123456789 ×(12文字以内でない) aaaa-1234567 ×(小文字が含まれている) 等 webサーバー・・・HP-UX web・・・IE6 開発端末・・・windows2000(Tera Term 使用) 情報をお持ちの方いらっしゃいましたら、 よろしくお願いいたします。

  • TETXの入力制限について色々と…

    <input type=text~~~~~~>で作ったテキストに160byte(全角80文字)までしか入力できない制限をつけたい。 <input type=text~~~~~~>で作ったテキストに半角数字(又は英数)しか入れられないようにするタグとかないでしょうかね?? こっちは半角電話番号を入力してもらいたいのです。 どなたかご存知の方おりましたからお願いします。

    • ベストアンサー
    • HTML
  • ピリオド区切りで 4桁.2桁.2桁 という制限が出来なくて困っています

    ピリオド区切りで 4桁.2桁.2桁 という制限が出来なくて困っています。 テキストボックスに入力される文字列の形式を制限するために、Web上で見つけたサンプルソースを参考に、次のような形でJavascriptを挿入しました。 <script type="text/javascript"> /* ピリオドチェック */ function DotCheck() { var str = document.form01.yukoduki.value; if( str.indexOf( "." ) != 4) { alert("1234.56.78 のように、ピリオド2つで区切ってご記入下さい"); document.form01.kakuninbutton.disabled = true; // 送信ボタン無効化; return 1; } return 0; } /* 2つめのピリオドチェック */ function DotCheck() { var str = document.form01.yukoduki.value; if( str.indexOf( "." ) != 6) { alert("1234.56.78 のように、ピリオド2つで区切ってご記入下さい"); document.form01.kakuninbutton.disabled = true; // 送信ボタン無効化; return 1; } return 0; } /* 半角数字チェック */ function NumberCheck() { var str = document.form01.yukoduki.value; if( str.match( /[^0-9\s.]+/ ) ) { alert("半角数字と小数点のみで入力して下さい。"); document.form01.kakuninbutton.disabled = true; // 送信ボタン無効化; return 1; } return 0; } /* 全部チェック */ function AllCheck() { var check = 0; check += NumberCheck(); check += DotCheck(); check += DotDotCheck(T); if( check > 0 ) { return false; } return true; } </script> しかし、これだと、123.456.78 のように最初のピリオドまでと2つ目のピリオドまでの桁数は制限できますが、最後の桁は何桁でも入れ放題になってしまいます。 そこで、ピリオドのチェックを2つ入れるかわりに、まとめて桁数をチェックしようと次のようなソースをソースを考えたのですが、どうも私の知識不足で間違っているようで作動しません。 /*一括ピリオドチェック */ function DotDotCheck(T) { var str = document.form01.yukoduki.value; if( !str.match(/^?d(4).?d(2).?d(2)$/)) { alert("1234.56.78 のように、ピリオド区切りで4桁.2桁.2桁でご記入下さい"); document.form01.kakuninbutton.disabled = true; // 送信ボタン無効化; return 1; } return 0; } このソース、少し直すだけで、「ピリオド区切りで4桁.2桁.2桁になっていない場合はアラート」という目的を達成できないでしょうか? 直し方をお分かりの方がいらっしゃいましたらご教示頂きたく、どうかよろしくお願い致します。

  • 半角英数字の判別

    お世話になります テキストフィールドにおいて半角英数字のチェックをしたいのですが・・・ 例えば『012ab』のような場合、 <script Language="JavaScript"> <!-- function checkText() { txt = document.myFORM.moto.value; if (txt.match(/[^a-z|^A-Z]/g)) alert("アルファベット以外が含まれてます"); } //--> </script> <form name="myFORM"> <input type="text" name="moto"> <input type="button" value="調べる" onClick="checkText()"> </form> では数字が入力されてるとalertされます function checkNum() { txt = document.myFORM.moto.value; for (i=0; i<txt.length; i++) { c = txt.charAt(i); if ("0123456789".indexOf(c,0) < 0) { alert("数値以外が含まれてます"); return; } } } //--> </script> <form name="myFORM"> <input type="text" name="moto"> <input type="button" value="調べる" onClick="checkNum()"> </form> ではアルファベットがあるとalertされてしまいます この2つをどのように組み合わせれば半角英数字以外であればalertされるようになるのでしょうか?

  • javaScriptで文字数制限

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

  • 検索フォームの入力値のチェック

    以下は、いくつもある検索フォームの中のテキストボックスの一つです。 ここに、次のエラーチェックを仕込みたいのですが。 (1) 17で始まる8桁数字以外はアラートを出す。NULLもダメ。 (2) 半角数字以外が入力されたときは、フォーカスが離れた時アラートを表示NULLはOK。 (3) ここに示していないその他のフォームを含め、一個でも上記エラーがあったら   検索ボタン押下時にアラートを出し、POSTを許可しない。 いろいろエラーになったり、(1) ができてなかったりで、すみませんが 完璧にするためのアドバイスいただけないでしょうか。IE6オンリーで十分です。 <html> <head> <script type="text/javascript"> function NullCheck() { if ( document.query.numberform.value=="" ) { alert( "必ず17で始まる半角数字8桁で指定してください。\n例:17910031" ); return 1; } return false; } function NumbCheck() { var str = document.query.numberform.value; if( str.match( /[^0-9]+/ ) ) { alert("不正な値がみつかりました。"); return 1; } return 0; } /* 全部チェック */ function AllCheck() { var check = 0; check += NullCheck01(); check += nmck09(); if( check > 0 ) { return false; } return check; } </script> </head> <body> <form method="post" action="list.php" target="list" id="query" name="query"> <input value="17000000" size="10" type="text" name="numberform" onblur="NumbCheck();NullCheck();">から <input type="submit" name="exec" value="検索" onclick="return AllCheck();"> </form> </body> </html>

  • フォームへの数値入力制限

    <form><input>でフォームを用意し、そこへ半角数字を入力してもらおうと思います。 そこで、10以上80以下の数字しか入力できないように制限を掛けたいです。 jsを使ってどのようなコードを書けば実現できますでしょうか? どうぞよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • エクセルのセルに入力文字の制限

    エクセルのセルに文字の制限をしたいのですが、例えばA1セルには半角英数、B1セルにはひらがな、C1セルには半角カタカナという感じでキーボートの半角/全角や英数キーを変更しなくても入力出来る方法がありましたら教えて下さい。宜しくお願いします。

  • 半角英数字のエラーチェック

    if ( $input{'aaa'} !~ /^[A-Z]{2}$/ ) { &Error("エラー"); } 上の正規表現は 『半角アルファベット2桁以外だったら』 エラーという表現ですが、 『半角アルファベット2桁または半角アルファベット+数字一桁以外だったら』 エラーにしたいのですが、どのような記述をすればいいのか教えてください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • エクセルVBAで数式を入力したいのですが、

    文字列(数値が他の文字と混在して入力されている)のセル内容に空白を見つけて、空白の前の文字(データによって1~4桁、実際は数字)を表示したいので、下記のようにしました。 結果、『SEARCH(" "』の空白を指定する『"』でエラーになってしまいます。 このエラーを回避する方法を教えて下さい。 Range("J12").FormulaR1C1 = "=mid(r[8]c[-5],SEARCH(" ",r[8]c[-5],6)-5),4)" セルデータの例 &nbsp;&nbsp;1: 52 ABCD EFGH(AAA) &nbsp;&nbsp;6: 823 JYUGF JKLM (B) 『:』までには半角空白が2個、次に半角数字が1桁、 次に半角空白があり、次の半角空白までに数字1桁から4桁があります。この数字を取り出したいのです。 宜しくお願いします。