ищу пример валидатора ввода мобильного номера

Discussion in 'PHP' started by ufaclub, 15 Sep 2012.

  1. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    например на Jquery
    нужен пример чтобы у пользователя не возникло никаких других вариант ввода номера кроме как

    +7(123)1234567

    чтобы форма как бы подсказывала как вводить и если не правильно ввел то правила бы

    как лучше всего сделать форму ввода сотового телефона?

    просто постоянно то 8ку в фору ввода кода оператора засунут - то скобки то еще ченить
     
  2. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    +7 [xxx] [xxxxxxx]

    Code:
    +7 <input type="text" maxlength="3" id="prefix" name="prefix" /> <input type="text" maxlength="7" id="number" name="number" />
    
    Проверка на стороне сервера
    PHP:
    is_int($_POST['prefix']) && strlen($_POST['prefix'] == //проверка для префикса
    is_int($_POST['number']) && strlen($_POST['number'] == //проверка для номера
    На стороне клиента
    Code:
    /[0-9]{3}/.test(document.getElementById('prefix').val()); // для префикса
    /[0-9]{7}/.test(document.getElementById('number').val()); // для номера
    
     
  3. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    а на стороне клиента но через jquery как сделать

    +7 <input name="gamename" class="phone" type="text">


    вот нашел код

    PHP:

    jQuery
    ("form").submit (
    function()
    {
        
    /*
            первый символ + (обязательно)
            далее код страны (минимум 1 цифра)
            далее открываем скобки (обязательно)
            код оператора - минимум одна цифра (обязательно)
            закрываем скобки (обязательно)
            первые цифры номера - минимум одна (обязательно)
            тире (обязательно)
            две цифры (обязательно)
            тире (обязательно)
            две цифры (обязательно)
        */
        
    if(!/^\+{1}\d+\({1}\d+\)\d{1,3}\-\d{2}\-\d{2}/.test(jQuery(".phone").val()))
        {
            
    alert("телефон  не соответствует формату");
            return 
    false;
         }
    });



    тут он проверяет +1

    а у меня нету +1 и нету +7 у меня вид такой нужный

    (999) 9999999

    и нужно еще запретить знак -

    т.е только ввод цифр от 1 до 9

    так как стоит маска

    (___) _______

    т.е то что в скабках - тока три цифры
    то что после скобок - 7 цифр

    никаких чтоб букв и знаков :)
     
  4. kroŧ

    kroŧ Member

    Joined:
    19 May 2010
    Messages:
    129
    Likes Received:
    33
    Reputations:
    8
    HTML
    Code:
     
     <form>
        <p>Введите телефон в формате +x(xxx)xxx, где вместо x 
        должна быть цифра:</p>
        <p><input name="tel" type="tel" pattern="\+\d?\(?\d{3}\)?\d{3,10}" value="+7"></p>
        <p><input type="submit" value="Отправить"></p>
       </form>
    
     
  5. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    ты понимаешь что валидация на стороне клиента подходит только если это что то типа внутреннего ресурса ? что если ты будешь это выкладывать в сети то погоришь именно на этом .так что если решишься то хоть отфильтруй то что к тебе в запросе пришло.
    а вообще регулярка для такого номера как в первом после
    /^\+\d\([\d]{3}\)[\d]{7}$/
    если без плюса то
    /^\([\d]{3}\)[\d]{7}$/
     
    #5 barnaki, 16 Sep 2012
    Last edited: 16 Sep 2012