Member 13951173 Ответов: 1

Позиция символа Jquery для телефонного номера


Я попробовал этот новый код , и осталась одна проблема, как я могу сделать необязательный плюс ( + ), как пользователь может вставить только в начале текста. Например, когда вы вставляете
0164+++1594 //ложь
+0123456789 // правда



Google Code Archive - долгосрочное хранилище для хостинга проектов Google Code.[^]

Я искал это, но я не понимаю, я думаю, что это похоже на то, что я хочу

Что я уже пробовал:

Я попробовал этот новый код , и осталась одна проблема, как мне сделать необязательный плюс ( + ), как пользователь может вставить только в начале текста :-

$("#hpno").on("keypress keyup blur",function (event) {
            //this.value = this.value.replace(/[^0-9\.]/g,'');
     $(this).val($(this).val().replace(/[^\+?0-9]/g,''));
            if ((event.which != 43 || $(this).val().indexOf('+') != -1) && (event.which < 48 || event.which > 57)) {
                event.preventDefault();
            }
        });

Member 13951173

Это то, что у меня есть поиск и попробовать https://jsfiddle.net/da90nt3c/49/

Как и в текстовом поле только:
+60123456789 //правда
0123456789 // правда
++012345678 //ложь
012544++++516 // ложь

Как будто это просто позволяет пользователю вставить плюс только один раз. Но плюс может быть необязательным. Но не может иметь больше одного плюса

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

Mohibur Rashid

Вы не следовали предложениям, которые вы получили для ваших старых вопросов. пожалуйста, следуйте ответам. Там все есть.

1 Ответов

Рейтинг:
6

Bryian Tan

Основываясь на ваших текущих и предыдущих сообщениях, я предполагаю, что вы хотите, чтобы текстовое поле показывало только формат телефона, соответствующий регулярному выражению. Я не думаю, что подход замены будет работать, потому что он заменит действительный телефон пустой строкой. Приведенный ниже код сохранит допустимые входные данные во временной переменной, если они совпадают с регулярным выражением. если они не совпадают, восстановите значение текстового поля с временным значением.

Вот вам пример.

<input type="text" id='txtPhone'>

var tempPhone = '';
  $("#txtPhone").keyup(function (e) {
 
    if($(this).val().match(/^\+?\d{0,}$/))
    {
       tempPhone =  $(this).val();
   		 $(this).val( tempPhone);
    }
    else {
        $(this).val( tempPhone);
    }
	});
  
  //paste, clear the temp value
   $('#txtPhone').on('paste', function () {
    tempPhone = '';
   });


Пример:
CP_phone_number - JSFiddle[^]


Member 13951173

Большое вам спасибо, это работает...