2014-11-25 3 views
1

Я пишу простой валидатор мобильных номеров в Javascript, но не могу правильно заставить регулярное выражение.Южноафриканский мобильный Javascript Regex

Южной Африки мобильные номера в настоящее время устанавливаются:

  • Start 0
  • [678] (1 цифра)
  • [0-9] (1 цифра)
  • [0-9 ] (7 цифр)

Так пример 0821234567, но люди также могут вводить его как 082 123 4567 (с пробелами или другим способом). Я хочу использовать регулярное выражение для проверки как appose, чтобы просто проверять числовое число, как я нашел, 082123456d также вернется как действительный.

Вот мой пример функции:

<script type="text/javascript"> 

     function regex(number) { 
      var regex = /0[678]\d[0-9]\d[0-9]{7,}\d/g; 
      if (regex.test(number) === true) { 
       console.log("work"); 
      } else { 
       console.log("no"); 
      } 
     } 
    </script> 
+3

Самый простой способ проверки номера телефонов, по-моему, это просто сделать '.Привернуть (/ \ D/г, '')' в вычеркнуть что-нибудь нечисловое и посмотреть, действительно ли остальное. Кроме того, не забудьте использовать '^' и '$' в начале и в конце, соответственно, для остановки '082123456d'. –

+0

@NiettheDarkAbsol вы должны были поставить это как ответ. Это на самом деле самое лучшее решение. – vks

+0

. Что такого особенного в первом 0-9, что его следует оценивать отдельно от следующих 7 цифр? вы не можете просто «[0-9] (8 цифр)»? – Nzall

ответ

2
var number = '0821234568'; //082123456d or 082 123 4567 

var trimmed = number.replace(/\s/g, ''); 

var regex = /^0(6|7|8){1}[0-9]{1}[0-9]{7}$/; 

if (regex.test(trimmed) === true) { 
    console.log("work"); 
else 
    console.log("no");