2014-02-01 4 views
0

Я пытаюсь использовать регулярное выражение для проверки типов данных. Пример состоит в том, что нужно задать число для вопросов, задающих числовое значение и строку для вопроса о строковых значениях.регулярное выражение javascript для проверки типов данных

Так что я пытался построить мой, если заявление так, что если первый вопрос или второй вопрос о «отец» или «числа» и ответом является не число, бросить предупреждение и т.д.

Would например, иметь другое выражение if, которое говорит, что вопрос о таком-то и таком (требующий строкового ответа) И ответ НЕ является строкой, бросает предупреждение.

Это дает мне «вы должны ввести число» для любого типа нажатия клавиши, независимо от того, является ли ключ номером или строковым символом ... Я ценю любой ввод .. Спасибо.

function validateDataType(word) { 
     firstSelection = document.getElementById('firstQ').value; 
     secondSelection = document.getElementById('secondQ').value; 
     try{ 
      if ((firstSelection=="number"|firstSelection=="father"|secondSelection=="number"|secondSelection=="father")&&(!/^(?=.*\d).$/.test(word))) 
      throw "You must type in a number."; 
      else if (!/^(?=.*[a-z])(?=.*[A-Z]).$/.test(word)) 
      throw "You must type in text."; 

     } 
     catch(inputError){ 
      window.alert(inputError); 
      return false 
     } 
     finally { 
      document.forms[0].firstA.value =''; 
      document.forms[0].secondA.value = ''; 
     } 
     document.open(); 
     document.write("You entered valid answers"); 
     document.close(); 
    } 

ответ

0

Вы должны использовать || вместо | в вашем, если условие:

if ((firstSelection=="number"||firstSelection=="father"||secondSelection=="number"||secondSelection=="father")&&(!/^(?=.*\d).$/.test(word))) 
  • | используется для побитового ИЛИ
+0

Это не должно быть проблемой с Булев, я Я неправ ? – axelduch

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