Вопрос по phone-number, validation, regex, javascript, whitespace – Javascript Regex - Что использовать для проверки номера телефона?

8

Может ли кто-нибудь сказать мне, что RegEx будет работать для проверки международного телефонного номера, включая пробелы между номерами, а также с учетом этих символов:.- ( )

Количество чисел в строке не так уж важно, я просто хотел бы, чтобы пользователь мог напечатать что-то вроде примера 1 или 2, если он пожелает:

Пример:

+44 (0) 207 111 1111

442071111111

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

Может кто-нибудь помочь мне с четким объяснением того, как вышеприведенное должно быть написано для проверки?

Большое спасибо всем, кто может помочь.

см. ссылку, приведенную ниже для руководстваstackoverflow.com/questions/6918185/... stackoverflow.com/questions/6195458/... эти вопросы имеют ту же проблему, что и у вас. так что это даст вам решение вашей проблемы. adeel iqbal
Пример 1 не соответствует вашему описанию. Описание некажется, позволяет ведущий+ John Dvorak
Извините людей, я пропустил "+" в моем описании. Я хотел бы включить это, если возможно. user2031340

Ваш Ответ

6   ответов
1

Дон»даже не пытайся. Попытка защититься от того, что вы считаете неверным вводом, может привести к тому, что злые пользователивведите абсолютно действительные номера телефонов. И если пользователь действительно хочет ввести неверный номер телефона, он / она сможет сделать это в любом случае.

14

HTML-код

<input type="text" id="phone">

Код JS

$("#phone").blur(function() {
  var regexp = /^[\s()+-]*([0-9][\s()+-]*){6,20}$/
  var no = $("#phone").val();
  if (!regexp.test(no) && no.length < 0) {
    alert("Wrong phone no");
  }
});
Это регулярное выражение допускает строку неограниченной длины, если она имеет более 6 дайджестов и неограниченную -. Например 123 -------------------------- 456. Milk3dfx
извини чувак, но я не могуя не понимаю, чего вы хотите, пожалуйста, оставьте свой вопрос с описанием и дайте мне свой вопрос "с URL Sagar Hirapara
так как я могу решить это без должного понимания Sagar Hirapara
Спасибо за ваш интерес и помощь человеку. Ниже приведен код, который у меня есть. Могу ли я не просто изменить функцию проверки, чтобы позволить то, что я хочу? Как вы думаете? user2031340
12

Комплексное регулярное выражение для проверки номера телефона

Быстрый шпаргалкаЗапустите выражение:/^Если вы хотите использовать пробел, используйте:[\s] или же\sЕсли вы хотите использовать скобки, используйте:[(] а также[)] , С помощью\( а также\) некрасиво и может запутать.Если вы хотите, чтобы что-то было необязательным, поставьте? после этогоЕсли вы хотите дефис, просто введите- или же[-] , Если вы не ставите его первым или последним в ряду других символов, вам, возможно, придется его избежать:\-Если вы хотите принять разные варианты в слоте, заключите их в квадратные скобки:[-.\s] потребуется дефис, точка или пробел. Знак вопроса после последней скобки сделает все эти поля необязательными для этого слота.\d{3} : Требуется трехзначное число: 000-999. Сокращение для.[0-9][0-9][0-9][2-9] : Требуется цифра 2-9 для этого слота.(\+|1\s)? : Принять "плюс» или 1 и пробел (символ трубы,|, является "или же"), и сделайте это необязательным. "плюс» знак должен быть экранирован.Если вы хотите, чтобы определенные номера соответствовали слоту, введите их:[246] потребуется 2, 4 или 6.[77|78] потребуется 77 или 78.$/ : Конец выражения
9

но оно поддерживает оба формата (например, 2, чтобы быть действительным международным номером, ДОЛЖНО начинаться с + или 00):

/^(?:(?:\(?(?:00|\+)([1-4]\d\d|[1-9]\d?)\)?)?[\-\.\ \\\/]?)?((?:\(?\d{1,}\)?[\-\.\ \\\/]?){0,})(?:[\-\.\ \\\/]?(?:#|ext\.?|extension|x)[\-\.\ \\\/]?(\d+))?$/i

Это позволяет расширения и множественный выбор форматов и разделителей.

Матчи:

(+351) 282 43 50 5090191919908555-8909001 6867684001 6867684x11 (234) 567-89011-234-567-8901 x12341-234-567-8901 ext12341-234 567.89 / 01 доб.12341 (234) 5678901x1234(123) 8575973(0055) (123) 8575973

На $ n это экономит:

Индикатор страныНомер телефонаУдлинитель

Этот же ответ был дан здесь:Комплексное регулярное выражение для проверки номера телефона (прямая ссылка на мой ответ)

да конечно. Благодарю. Ankit Sahrawat
@ Мордред Это, конечно, кажется хорошим! Это'легче, чем мой, не так ли?хак, и этона самом деле чисто (с учетом предмета). Ismael Miguel
@JeanPaul Очень полезно ... Скажите, пожалуйста, что?S не так? Ismael Miguel
@AnkitSahrawat Добро пожаловать. Если вы найдете какой-либо случай, который должен быть подтвержден, но этоНет, вы всегда можете прокомментировать здесь, и я исправлю это. Ismael Miguel
1
/*
@isValidUSPhoneFormat function will check valid US Format
    Allowed US Format
(123) 456-7890
123-456-7890
123.456.7890
1234567890
(734) 555.1212
*/   

    function isValidUSPhoneFormat(elementValue){  
            var phoneNumberPattern = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s.]{0,1}[0-9]{3}[-\s.]{0,1}[0-9]{4}$/;  
            if(phoneNumberPattern.test(elementValue) == false)
            {
                 var phoneNumberPattern = /^(\()?\d{3}(\))?(.|\s)?\d{3}(.|\s)\d{4}$/; 
                 return phoneNumberPattern.test(elementValue);   
            }
            return phoneNumberPattern.test(elementValue);  
        }

1
function checkPhoneNumber(val) {
    var num = document.getElementById(val).value;
    var mob=/^[+]*[(]{0,1}[0-9]{1,3}[)]{0,1}[-\s\./0-9]*$/g;
    if (mob.test(num) == false) {
        alert("Please Enter Valid Phone Number.");
        document.getElementById(val).value = "";
        return false;
    }
     if (num.length > 15) {
        alert("Only 15 characters allowed for Phone Number field.");
        document.getElementById(val).value = "";
        return false;
    }

    return true;
}

Похожие вопросы