2017-02-28 7 views
0

ショートフォームを検証し、自動車登録番号のみを受け付けるjavascript関数を作成したい"KM-10-HUH"。 「KM」は2文字、「10」は2文字、「HUH」は3文字である。 3つの部分はハイフン( - )で区切ってください。ここでJavascriptによるフォーム検証。 "KK-10-HUH"の形式で車の登録のみを受け付けるようにフィールドを検証したい

は、私のコードのいくつかのサンプルです:

<div> 
     <form id="registrationForm" method="post" onSubmit="return validate();"> 
      <table cols="2" width="100%">     
       <tr> 
        <td>Model<span class="required">*</span></td> 
        <td><input type="text" size="30" id = "model" name = "model" /> </td> 
       </tr> 
       <tr> 
        <td>Registration Number <span class="required">*</span></td> 
        <td><input type="text" size="30" id = "regNumber" name="regNumber" /> </td> 
       </tr> 
       <tr> 
        <td>Name<span class="required">*</span></td> 
        <td><input type="text" size="30" id = "name" name="name" /></td> 
       </tr>     

       <tr> 
        <td><input type="submit" value="Submit" /> </td> 
        <td><input type="reset" value="Reset"/> </td> 
       </tr> 
      </table> 
     </form> 
    </div> 

</div> 
+0

フォームの「コード」マークアップはありません。そして、それは典型的な "私のための完全な解決策"の質問です。 –

答えて

2

あなたはそのために正規表現を使用することができます。プレート文字列が有効であるかどうか、テストする

var regex = /[A-Z]{2}-[0-9]{2}-[A-Z]{3}/g; 

[A-Z] BELOW

regex.test("KM-10-HUH"); // returns true 
regex.test("KM-1-HUH"); // returns false 

REGEX解説からZ(大文字のみ)の任意の文字を意味し、 {2}で終わりは、その前に書かれたものが2つあることを意味します。この場合、

[A-Z]{2}は2つの大文字を意味します。次にハイフンだけを入力してから、3つの数字[0-9]{3}とハイフンと3文字をもう一度[A-Z]{3}に入力します。

+0

それでは、javascriptコードは正確には何ですか? –

+1

私はあなたを見せるためにフィドルを作成しました。何らかの理由で、JSセクションにJSコードを記述しても機能しませんでした。したがって、すべてのコードはHTMLセクションに書き込まれます。 https://jsfiddle.net/dLs5nc7t/ –

1

MDN Linkでフォームの検証について多くを学ぶことができます。また、HTML5フォームの検証を使用して、正規表現を使用して特定の入力のパターンを指定することもできます。 2件の他の回答を組み合わせる

2

、このバイオリンを試してみてください。https://jsfiddle.net/dLs5nc7t/1/

すなわち、ただinputタグにpattern属性に正規表現を置く:そのフィールドがパターンに一致しないテキストが含まれている間、ブラウザがフォームを送信することができませんので、

<input type="text" size="30" id="regNumber" name="regNumber" 
     pattern="[A-Z]{2}-[0-9]{2}-[A-Z]{3}" /> 

をこれには、JavaScriptのための必要性を否定します。

+0

私は実際にそれを使用しました。本当に便利ですし、パターンが一致しない場合に表示されるカスタムメッセージを設定することもできます。しかし、広く支持されていませんでした。それは今ですか? –

+1

ああ、それは "必須"属性を持っていなければ、それなしでは動作しないようです:D –

+0

@LukaKvavilashvili re c.f. http://caniuse.com/#feat=input-patternまた、私は '必須'の部分についてはわからない - それはクロムのフィドル(それはポップアップで間違ったパターンで提出を停止)で私のために働くようだ... – Kev

関連する問題