下記ソースコードにて正規表現を作成しました。
(一部のみ抜粋)
HTML:
<form action="send.html" method="POST" id="contact">
<div class="item">
<label for="postal_code" class="label">郵便番号</label>
<input type="text" name="question" id="postal_code" style="width: 55px;">-<input type="text" name="question" id="postal_code2" style="width: 90px;">
</div>
<div class="s_button">
<input type="submit" name="submit" id="submit">
</div>
</form>
__________________________________________
JavaScript:
document.getElementById('contact').onsubmit = function() {
let textvalue3 = document.getElementById('postal_code').value;
let textvalue4 = document.getElementById('postal_code2').value;
if(!textvalue3.match(/^(\d+){3}$/) || !textvalue4.match(/^(\d+){4}$/)) {
window.alert('半角数字の入力、桁数の確認願います(郵便番号)');
return false;
}
};
■半角数字以外は入力禁止
■左側テキストボックスは3桁以外での入力禁止、右側テキストボックスは4桁以外での入力禁止
問題は2番目なのですが、
左側3桁入力の部分にて1桁、2桁の場合は下記ソースコードのアラートが出力されます。
ですが4桁以上の入力をすると、なぜかアラートが出力されません。
下の正規表現では3桁ぴったりの入力でそれ以外はアラートが出るように記述してるのに、なぜか4桁以上の出力でもアラートが出ない様になっています。
右側の4桁以上も同様で、
1桁、2桁、3桁はアラートが出力されますが、5桁以上の場合でもアラートが出力されません
まとめ:
■左側テキストボックス(3桁指定):
1桁、2桁はアラートがでる。
4桁以上はアラートがでない。
■右側テキストボックス(4桁指定):
1桁、2桁、3桁はアラートが出る
5桁以上はアラートが出ない
桁数を指定しているのになぜ?
桁数を指定しているのになぜ、その桁数以上が条件に通ってしまうのでしょうか。
教えて頂きたくお願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは
>/^(\d+){3}$/
\d+と「+」があるので、3桁以上なら何桁でもマッチしてしまいますね。
/^\d{3}$/
などではいかがでしょうか?
回答ありがとうございます。
+の理解していなかったようです。
てっきり+は同じ文字を重複出来る様になるものだと思ってました。
例:
326 ←+がなくてもエラーにならない
333 ←数字が重複しているため+を入れないとエラーになる
このようなものだとばかり思ってました。
でも下記URLにも書いてありました。
{1,}と同等の意味だったんですね。
https://developer.mozilla.org/ja/docs/Web/JavaSc …
(抜粋):
直前の文字の 1 回以上の繰り返しにマッチする。{1,} と同等。 例えば、/a+/ は "candy" の 'a' や、"caaaaaaandy" のすべての a にマッチする。
おかげで問題なくできました。
教えて頂きありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メールアドレス確認 javascrip...
-
条件により、リンク先に画面遷...
-
HTMLでJavaScriptを使用してプ...
-
onChangeの使い方について教え...
-
vbsでフォームに値を入力できない
-
JSPとJavaScriptの連携について...
-
onClickとsubmitの処理順序
-
文末の改行コードを削除したい
-
日付入力欄の表示形式を自動的...
-
日付入力
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
【jQuery】input nameの文字列...
-
チェックボックスのON/OFFでVal...
-
特定<table>内の<td>の色を変える
-
3桁区切りのカンマをつけたい...
-
追加ボタンを押した際に ok ボ...
-
javascriptのちょっとした動作...
-
hiddenのvalueの値を変えたい
-
javaScriptの変数をJavaの変数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onClickとsubmitの処理順序
-
テキストボックス入力を半角英...
-
PDFフォームで条件つき金額を表...
-
フォームの値が0だったら空白...
-
javascriptで入力フォームが空...
-
条件により、リンク先に画面遷...
-
フォームから入力すると、入力...
-
VBScriptで未入力のチェック(...
-
日付入力欄の表示形式を自動的...
-
Javascriptが機能せず原因が分...
-
submit後、同じ入力欄に戻らせ...
-
テキストフィールドに入力した...
-
JSPとJavaScriptの連携について...
-
最初の入力を判断
-
イベント発生時に入力待ち状態...
-
過去日付、年の切り替え
-
カレンダーをテキストエリアに...
-
入力した文字を大文字に変換し...
-
リンククリック → テキスト自...
-
javascriptで入力禁止文字をチ...
おすすめ情報