Проверка номера в определенном формате

#javascript #jquery #asp.net #regex

#javascript #jquery #asp.net #регулярное выражение

Вопрос:

У меня есть номер, который должен быть в определенном формате: 123-1345678. три числа, затем тире, затем 8 чисел.

Я уже проверяю, что вводятся только числа, но как мне проверить, что они вводят правильный формат?

 function Validate(event) {   
  var regex = new RegExp("^[0-9-] $");
  var str = String.fromCharCode(!event.charCode ? event.which : event.charCode);
  if (regex.test(str)) {
    return true;
  } else {
    event.preventDefault();
    alert("Character "   str   " is not allowed");
    return false;
  }  
}
  

Функция проверки вызывается при каждом нажатии клавиши:

   <asp:TextBox runat="server" ID="txtNumber" onkeypress="return Validate(event);"></asp:TextBox>
  

Комментарии:

1. new RegExp("^d{3}-d{8}$");

Ответ №1:

Вы можете использовать это регулярное выражение:

 ^d{3}-d{8}$
  

Не проверяйте onkeypress , просто проверяйте перед отправкой.

Ответ №2:

Вы можете проверить подстроки введенной строки, если они числовые или тире. т. е.: str.substr(0, 3); я не поклонник огромных фреймворков, но если вы все равно используете jquery, вы можете сделать a jQuery.isNumeric в качестве быстрого решения для проверки строковой части.