2016-11-13 3 views
1

У меня есть два поля, сетевой адаптер и имя пользователя. Их проверка достоверности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>

  • Моя проверка для сетевой карты не совсем 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. Вы можете проверить Yoru узоров на http://regex101.com/

Чтобы извлечь DOB:

<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

Для части имени пользователя, я пытаюсь извлечь DOB от NIC и autoplace его в поле имени пользователя. –

+0

И как вы поместили dob в поле имени пользователя? –

+0

Это вопрос, который задает вопросы, а теперь решает все ваши проблемы сразу. – gskema

Смежные вопросы