Ответ 1
Попробуйте это... он удостоверится, что строка "телефон" содержит только цифры и будет содержать хотя бы одну цифру
if(phone.match(/^\d+$/)) {
// your code here
}
Я хотел бы проверить, вводит ли пользователь правильный номер телефона, с помощью jQuery, до сих пор я дошел до этого этапа:
var phone = $("input#phone").val();
if (phone !== "") {
//Check if phone is numeric
$("label#phone_error").show(); //Show error
$("input#phone").focus(); //Focus on field
return false;
}
В основном, он проверяет, был ли введен номер телефона, и если бы это было так, я хотел бы проверить, является ли это числовым значением, и если оно не отображает сообщения об ошибках. Может ли кто-нибудь помочь с проверкой, является ли это числовым?
Попробуйте это... он удостоверится, что строка "телефон" содержит только цифры и будет содержать хотя бы одну цифру
if(phone.match(/^\d+$/)) {
// your code here
}
В jQuery есть встроенная функция для проверки этого (isNumeric), поэтому попробуйте следующее:
var phone = $("input#phone").val();
if (phone !== "" && !$.isNumeric(phone)) {
//Check if phone is numeric
$("label#phone_error").show(); //Show error
$("input#phone").focus(); //Focus on field
return false;
}
http://docs.jquery.com/Plugins/Validation/CustomMethods/phoneUS
Проверьте это. Это должно быть именно то, что вы ищете. Плагин подтверждения Google для jQuery.
Если вы хотите сделать это самостоятельно, у вас будет много работы. Проверьте функцию isNaN()
. Он говорит вам, что это не число. Вы также захотите освежить ваши регулярные выражения для проверки. Если вы используете RegEx, вы можете обойтись без isNaN()
, так как вы все равно будете тестировать.
Я использовал это:
jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");
Я использовал это, чтобы проверить, были ли все текстовые поля числовыми значениями:
if(!$.isNumeric($('input:text').val())) {
alert("All the text boxes must have numeric values!");
return false;
}
или для одного:
$.isNumeric($("txtBox").val());
Доступно с jQuery 1.7.
для будущих посетителей, вы можете добавить этот функционал, который позволяет пользователю вводить только числа: вам нужно будет добавить jquery и имя класса для проверки ввода, чтобы в http://jsfiddle.net/celia/dvnL9has/2/
$('.phone_number').keypress(function(event){
var numero= String.fromCharCode(event.keyCode);
var myArray = ['0','1','2','3','4','5','6','7','8','9',0,1,2,3,4,5,6,7,8,9];
index = myArray.indexOf(numero);// 1
var longeur= $('.phone_number').val().length;
if(window.getSelection){
text = window.getSelection().toString();
} if(index>=0&text.length>0){
}else if(index>=0&longeur<10){
}else {return false;} });
if (!(/^[-+]?\d*\.?\d*$/.test(document.getElementById('txtRemittanceNumber').value))){
alert('Please enter only numbers into amount textbox.')
}
else
{
alert('Right Number');
}
Я надеюсь, что этот код может вам помочь.
в этом коде, если условие вернет true, если есть любое юридическое десятичное число любого числа десятичных знаков. и предупреждение появится с сообщением "Правильный номер", то другим будет показано всплывающее окно с сообщением "Пожалуйста, введите только числа в текстовое поле суммы".
Спасибо...:)
Я использовал этот вид проверки... проверяет вставленный текст и содержит ли он алфавиты, показывает ошибку для пользователя, а затем освобождает окно после задержки, чтобы пользователь мог проверить текст и внести соответствующие изменения.
$('#txtbox').on('paste', function (e) {
var $this = $(this);
setTimeout(function (e) {
if (($this.val()).match(/[^0-9]/g))
{
$("#errormsg").html("Only Numerical Characters allowed").show().delay(2500).fadeOut("slow");
setTimeout(function (e) {
$this.val(null);
},2500);
}
}, 5);
});
Это не точный ответ на вопрос, но еще один вариант проверки телефона - это обеспечение ввода числа в ожидаемом формате.
Вот функция, с которой я работал, когда она установлена в событие onInput
, будет разделять любые нечисловые входы и автоматически вставлять тире в "правильном" месте, предполагая, что xxx-xxx-xxxx является желательным выход.
<input oninput="formatPhone()">
function formatPhone(e) {
var x = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})/);
e.target.value = !x[2] ? x[1] : x[1] + '-' + x[2] + (x[3] ? '-' + x[3] : '');
}