Изменения содержимого input на лету

Рейтинг: 1Ответов: 2Опубликовано: 21.09.2014

Хочу сделать текстовое поля для ввода номера кредитной карты из 16 цифр. Вот взял готовое регулярное выражения номера карты в формате: 1111 2222 3333 4444. Как сделать так, чтобы после ввода 4 цифр делало пробел на лету, потом еще 4 цифры, пробел и т.д. (\d{6}[-\s]?\d{12})|(\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4})

<input type="text" id="card" name="card" maxlength="16">

Ответы

▲ 2

Если в гугле написать input mask, то вы получите кучу ссылок по вашему вопросу.
К примеру, вот http://igorescobar.github.io/jQuery-Mask-Plugin/

▲ 1

function CreditCard(elem){
    var m = elem.value.length+1;
    
    if (m > 19 || event.keyCode < 48 || event.keyCode > 57)
    event.returnValue= false;
    
    else if (m == 5 || m == 10 || m == 15)
    elem.value += ' ';
}
Поле для ввода номера кредитной карты из 16 цифр
<br><br>
<input type="text">