Показать сообщение отдельно
  #1 (permalink)  
Старый 10.02.2019, 19:02
Аспирант
Отправить личное сообщение для alex-romanov Посмотреть профиль Найти все сообщения от alex-romanov
 
Регистрация: 02.02.2019
Сообщений: 67

Как можно оформить регулярное выражение (4 разряда 3 3 3 ...))
0000 000 000 000 : 13
0000 000 000 000 00 : 15
0000 000 000 000 000 : 16
0000 000 000 000 000 00 : 18
0000 000 000 000 000 000 : 19


Как в зависимости от длины, задать вот такую маску ?

Вот пример кода, на основе которого это пытаюсь сделать.

<br />

    <h2>Кредитная карта </h2>
    <div>
        <input class="creditCardInput2" value="" placeholder="Введите номер кредитной карты" size="65" />
    </div>


function validateRealTimeCreditCardNumber(selector) {
 
    //var events = ['input', 'change', 'blur', 'keyup'];
 
    var events = "input change blur keyup";
    var lengthCreditCardNumber = 19;
 
    var reg = /[^\d]/g; /*все кроме цифр*/
 
    var regGroupDigit = /[\d]{1,4}/g;
    var cardCode;
 
    /*цикл */
 
     $(selector).each(function () {
        $(selector).on(events, function () {
 
            /*удаляются все символы, кроме цифр, а также любые символы, после достижения указанного предела*/
            var cardCode = this.value.replace(reg, '').substring(0, lengthCreditCardNumber);
 
            /*текущее значение из поля ввода, форматируется согласно регулярному выражению,
            в данном случае ищются символы от 1 до 4 и после такой группы символов, ставится пробел*/
            
           if(cardCode !== ''){
              cardCode.match(regGroupDigit).join(" ");
            }else{

              cardCode = '';
            }

 
            this.value = cardCode;/*записываев в поле ввода, проверенный символ (если он там есть)*/
        });
    });

Последний раз редактировалось alex-romanov, 10.02.2019 в 19:05.
Ответить с цитированием