@BedOmar
Веб-разработчик

Как позволить набирать input только числа и «+»?

Есть код позволяющий вводить только числа в инпут, как сделать так что бы можно было вводить еще и знак "+". Вот код:
$('input').on('input', (e) => { e.target.value = e.target.value.replace(/\D/g, '')})
  • Вопрос задан
  • 3888 просмотров
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
Замените текущее регулярное выражение на /[^+\d]/g.

Ну а вообще, как я понял, вы хотите реализовать ввод телефона. Рекомендую посмотреть в сторону таких вещей как inputmask, например.
Ответ написан
Комментировать
@BarryHAllen
<input type="text" oninput="replacer(this)">

function replacer(el) {
    el.value = el.value.replace(/[^0-9+]/g, ''); 
}
Ответ написан
Комментировать
@kudis
Bitrix developer
Используйте плагин inputmask от jQuery
$(function () {
   $(".js-form__input--tel").inputmask("mask", {"mask": "+7 (999) 999-9999"});
});

если хотите, чтобы формат был "российский мобильный" +7(9xx)xxx-xxxx (где x-любая цифра)
то jQuery inputmask позволит сделать маску так:
$(function () {
    $('.js-form__input--tel').inputmask({
        mask: "+7 (X99) 999-9999",
        definitions: {
            'X': {
                validator: "9",
                placeholder: "9"
            }
        }
    });
});

Теперь пользователь может вводить 89123456789 или +79123456789 или 79123456789
Вы получите весь телефон в нужном формате
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Mi11er
@Mi11er
A human...
А почему не использовать патерн на инпуте ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы