ピリオド区切りで 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.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 というのをどういう時にどういう使い方をすればよいのかさえ理解しきっていないので、教えて頂いたこのソースでなぜ上手く行くのかがやはり理解しきれないのですが、おかげさまで直面している問題を解決することが出来ました!
どうもありがとうございました!
No.3
- 回答日時:
function checker422( str ) {
return /^[0-9]{4}\.[0-9]{2}\.[0-9]{2}$/.test( str );
}
もしひづけのちぇっくなら、これだけだとやばいけど
No.4
- 回答日時:
2つめのピリオドチェックで
( str.indexOf( "." ) != 6)
となっていますが,これは「ピリオドの位置が左から6番目でなければ」という意味です。
なので,仰るとおり123456.7890123というように最後の桁は入れ放題になります。
lengthで最初に全体の文字列の長さを確かめ,次に半角文字のみであることを確認し,最後に1個目・2個目のピリオドチェックとするほうが確実だと思います。
あるいは,取得した文字列を変数に入れているので,グローバル変数を別の関数に引数として渡す方法もあるのでは,と思いますが,自信はないです。
ご回答ありがとうございます。
そうなんです。私の質問文が説明不足ではあるんですが、lengthを入れるのが確実ではあります。
ただ、ピリオドの位置について独立してアラートを出す形しか思いつかなかったので、そこに更にレングスチェックまで入ると、入力されたデータの形式によっては、まずレングスチェックのアラートが出て、「OK」をクリックしたらまたその場で1つ目のピリオドチェックでアラートが出て、そこで「OK」をクリックするとまたもや2つ目のピリオドのアラートが出て…と、非常に鬱陶しいスクリプトになってしまうのです。
そこで4桁.2桁.2桁をいっぺんにチェックできないかと思った次第です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
return trueとreturn falseの用...
-
正規表現で複数マッチ条件で悩...
-
チェックボックスの有無判定
-
slickのレスポンシブ > center...
-
ドロップダウンリストボックス...
-
半角英数字のみの入力にエラー...
-
テキストボックスに数字しか入...
-
IE8におけるショートカットキー...
-
ctrl+vを無効にする方法
-
未入力のラジオボタンに、alert...
-
Tabキーでのカーソルの移動...
-
プルダウン 項目が多いので先頭...
-
hiddenのvalueの値を変えたい
-
onchangeイベントを強制的に発...
-
チェックボックスの設定
-
javascriptでASPにデータを渡す
-
テキストエリアをenterキーでフ...
-
クリックの度に加算していくには?
-
プルダウンで選択すると、DBの...
-
【jQuery】input nameの文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
return trueとreturn falseの用...
-
正規表現で複数マッチ条件で悩...
-
JavaScriptde途中で、「exit」...
-
slickのレスポンシブ > center...
-
COBOLの数字チェック
-
チェックボックスの有無判定
-
フォームの入力チェックをする...
-
Visual Studioのデザインでの非...
-
Tabキーでのカーソルの移動...
-
ツリービューのチェックボック...
-
ドロップダウンリストボックス...
-
コピペを禁止するtextarea
-
ラジオボタンのNullチェック
-
未入力のラジオボタンに、alert...
-
form の onSubmit がコールされ...
-
分岐数といえば
-
JSのみで入力→確認→メールで送...
-
JavaScript ログアウト処理
-
TEXTAREAに入力した改行コード...
-
リロードしないようにするには
おすすめ情報