#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
в качестве быстрого решения для проверки строковой части.