ピリオド区切りで 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桁になっていない場合はアラート」という目的を達成できないでしょうか?
直し方をお分かりの方がいらっしゃいましたらご教示頂きたく、どうかよろしくお願い致します。
No.4
- 回答日時:
2つめのピリオドチェックで
( str.indexOf( "." ) != 6)
となっていますが,これは「ピリオドの位置が左から6番目でなければ」という意味です。
なので,仰るとおり123456.7890123というように最後の桁は入れ放題になります。
lengthで最初に全体の文字列の長さを確かめ,次に半角文字のみであることを確認し,最後に1個目・2個目のピリオドチェックとするほうが確実だと思います。
あるいは,取得した文字列を変数に入れているので,グローバル変数を別の関数に引数として渡す方法もあるのでは,と思いますが,自信はないです。
ご回答ありがとうございます。
そうなんです。私の質問文が説明不足ではあるんですが、lengthを入れるのが確実ではあります。
ただ、ピリオドの位置について独立してアラートを出す形しか思いつかなかったので、そこに更にレングスチェックまで入ると、入力されたデータの形式によっては、まずレングスチェックのアラートが出て、「OK」をクリックしたらまたその場で1つ目のピリオドチェックでアラートが出て、そこで「OK」をクリックするとまたもや2つ目のピリオドのアラートが出て…と、非常に鬱陶しいスクリプトになってしまうのです。
そこで4桁.2桁.2桁をいっぺんにチェックできないかと思った次第です。
No.3
- 回答日時:
function checker422( str ) {
return /^[0-9]{4}\.[0-9]{2}\.[0-9]{2}$/.test( str );
}
もしひづけのちぇっくなら、これだけだとやばいけど
No.2
- 回答日時:
頭からお尻まできちんとチェックすればいいのでは?
<script>
function DotCheck(obj) {
var v=obj.value;
if(v!=="" && !v.match(/^[0-9]{4}\.[0-9]{2}\.[0-9]{2}$/)){
alert("unmatch!");
obj.value="";
}
}
</script>
<input type="text" onblur="DotCheck(this)">
ご回答ありがとうございます。
教えて頂いたソースを当てはめてみたら、完璧に目的を達することが出来ました。
私は本当に知識が浅く、 this というのをどういう時にどういう使い方をすればよいのかさえ理解しきっていないので、教えて頂いたこのソースでなぜ上手く行くのかがやはり理解しきれないのですが、おかげさまで直面している問題を解決することが出来ました!
どうもありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
return trueとreturn falseの用...
-
ドラッグ&ドロップ禁止について
-
slickのレスポンシブ > center...
-
半角英数字のみの入力にエラー...
-
IEでDOMが作成出来ない
-
ピリオド区切りで 4桁.2桁.2桁 ...
-
リロードしないようにするには
-
値をチェックしたい
-
ラジオボタンとセレクトボック...
-
チェックボックス付きのテーブ...
-
1つのページにformを2つ設置。2...
-
クリックさせたいが、click()が...
-
プルダウン選択を変更すると、...
-
新しくフォルダを作成したい
-
onClickとsubmitの処理順序
-
ラジオボタンと連動して文字列...
-
javascriptで二重送信防止
-
チェックボックスのON/OFFでVal...
-
jQueryで設定したイベントハン...
-
マイナスなら赤字で表示したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
return trueとreturn falseの用...
-
slickのレスポンシブ > center...
-
COBOLの数字チェック
-
コピペを禁止するtextarea
-
JavaScriptde途中で、「exit」...
-
未入力のラジオボタンに、alert...
-
ラジオボタンのNullチェック
-
テキストボックスに数字しか入...
-
数式から不要なカッコを取り除...
-
半角英数字のみの入力にエラー...
-
フォームの入力チェックをする...
-
変数の値によってsubmit後の動...
-
ツリービューのチェックボック...
-
ドロップダウンリストボックス...
-
ドラッグ&ドロップ禁止について
-
テキストボックスをEnterキーで...
-
入力された日付の正規表現の仕...
-
Visual Studioのデザインでの非...
-
正規表現で複数マッチ条件で悩...
-
度胸試しのJavaScript
おすすめ情報