Я использую libphonenumber для реакции на форматирование и проверку номера телефона (в моем случае ливанский номер).
Действительная маска ливанского номера телефона: +961 хх ххх ххх
и это на самом деле хорошо работает в примере, приведенном в их демо
Здесь
, поэтому для Ливана код страны - LB
, действительный шаблон - xx xxx xxx
так, например, когда ввод +961 71 123 123
==> номер телефона на самом деле valid
и +961 71 123 12
не
в моем случае в реакции входной номер действителен, как только он достигнет 2
, как в 71 123 12
, когда он должен достичь 3
import { AsYouType } from 'libphonenumber-js'
let asYouType = new AsYouType()
asYouType.defaultCountry = 'LB';
asYouType.reset();
asYouType.input('7112312')
// <<< PROBLEM HERE >>>
console.log('number is valid ',asYouType.getNumber().isValid());
//output: is valid when it should not be valid 71 123 12 (missing one number)
asYouType.defaultCountry = 'LB';
asYouType.reset();
asYouType.input('711231')
console.log('number is valid ',asYouType.getNumber().isValid());
// out : false (OK)
asYouType.defaultCountry = 'LB';
asYouType.reset();
asYouType.input('71123123')
console.log('number is valid ',asYouType.getNumber().isValid());
// out: true (OK)