2016-11-13 1 views
1

NICとユーザー名の2つのフィールドがあります。彼らの検証は、数字や文字 NICとユーザー名の検証フィールド

  • ユーザ名フィールドの

    • NICチェックがNICからの誕生日 など、8つの以上の文字が含まれている必要があります。

    これまでのところ、私はNICのためにこれを試しました。

    function validateNIC() 
     
    { 
     
        var nic = document.getElementById('NIC'); 
     
        var mesg = document.getElementById('message1'); 
     
    
     
        if (NIC.length != 14) { 
     
         message1.innerHTML="Length must be 14 characters"; 
     
        } else{ 
     
         message1.innerHTML="Length is good"; 
     
        } 
     
        } 
     
    
    <div class="form-group"> 
     
           <label for="username"><span class="req">* </span> NIC NUMBER:</label> 
     
            <input class="form-control" type="text" name="NIC" id = "NIC" required onkeyup = "validateNIC();" maxlength=14 /> 
     
            <span id="message1"></span> 
     
             
     
          </div>

    そして、自分のユーザー名のため、私はこれを試してみました。

    function Validate(txt) { 
     
        txt.value = txt.value.replace(/[^a-zA-Z-'\n\r.]+/g, ''); 
     
    }
    <div class="form-group"> 
     
        <label for="username"><span class="req">* </span> User name:</label> 
     
        <input class="form-control" type="text" name="username" id="txt" onkeyup="Validate(this)" maxlength=14 required /> 
     
        <div id="errLast"></div> 
     
    </div>

    • NICのための私の検証はworking.Itが 示す保ち、非常ない長さが良い場合でも、 "長さを14文字でなければなりません"。
    • ユーザー名の部分については、どのようにすればいいのですか? 私は何かをしなければならない配列ですか? NICの例は T2108974302906です。ここで210897はDOBです。ない、その値 -
  • 答えて

    0

    var nic = document.getElementById('NIC');

    この文は、入力要素を取得します。あなたのような、その値を取得する必要があります。

    var nic = document.getElementById('NIC').value;

    その後、あなたは14に長さを比較することができ、私も!==代わりの!=を使用してお勧めします。

    ユーザー名の検証 - 検証しようとしている場合、なぜ値を置き換えますか?なぜ最大値は14で8ではないのですか?

    0
    ここ
    var nic = document.getElementById('NIC'); 
    var mesg = document.getElementById('message1'); 
    
    if (NIC.length != 14) { 
    

    NIC DOM要素ではなく、その入力要素のを指します。 nic.value.lengthを使用します。

    ユーザー名は、RegExが奇妙に見える[^a-zA-Z-'\n\r.]です。このセットは、セットにない文字と一致します。 \n\rを入れたのはなぜですか?

    とにかく、<form>要素を使用してこれらのフィールドを送信する場合は、pattern属性を使用することをおすすめします。あなたがDOB抽出するには夜にhttp://regex101.com/

    上のパターンをテストすることができます。usernameの部分について

    <input pattern="^T[0-3]\d[0-1]\d{10}$"> 
    
    validateNIC() { 
        var nic = document.getElementById('NIC'); 
        var isValid = /^T[0-3]\d[0-1]\d{10}$/.test(nic.value); 
        var dob = nic.value.substring(1, 7); 
    } 
    
    +0

    を、私はNICからDOBを抽出し、ユーザー名フィールドでそれを自動配置しようとしています。 –

    +0

    そして、どのようにユーザー名フィールドにdobを入れますか? –

    +0

    これは質問をするためのもので、すべての問題を一度に解決します。 – gskema

    関連する問題