Обрезать ведущий ноль мгновенно - PullRequest
0 голосов
/ 01 ноября 2019

Я использую скрипт jquery для маскировки поля ввода. Это номер телефона. https://igorescobar.github.io/jQuery-Mask-Plugin/docs.html

Я хочу замаскировать поле ввода следующим образом: +32 123 45 67 89

Но в Бельгии люди обычно заполняют свой номер телефона, например: 0123 4567 89. Цель - мгновенно обрезать ведущий ноль ...

  $('.phone').mask('+32000 00 00 00', {placeholder: "Phone number"});
});

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

Использование translation опция

$('.phone').mask('+32Z00 00 00 00', {
  placeholder: "Phone number",
  translation: {
    'Z': { pattern: /[1-9]/ }
  },
  onInvalid: function(val, e, f, invalid, options) {
    if(val === '+32') {
      event.target.value = '';
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.min.js" integrity="sha256-Kg2zTcFO9LXOc7IwcBx1YeUBJmekycsnTsq2RuFHSZU=" crossorigin="anonymous"></script>

<input class="phone" />
0 голосов
/ 01 ноября 2019

Мой самый первый подход был бы таким. Выйдите из пробелов, а затем выйдите из начального нуля, если он существует.


function truncateLeadingZero(phoneNumber) {
    var noWhiteSpaces = phoneNumber.split(' ').join('');
    while (noWhiteSpaces.length > 9 && noWhiteSpaces[0] === '0') {
        noWhiteSpaces = noWhiteSpaces.substring(1,noWhiteSpaces.length);
    }

    return noWhiteSpaces;
}


var phoneNumber = '0123 45 67 89';
phoneNumber = truncateLeadingZero(phoneNumber)
console.log(phoneNumber);

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

$('.phone').mask('+32000 00 00 00', {placeholder: "Phone number"});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...