Доброго времени суток, у меня есть валидация по регулярке:
(PHP)
public function validatePhone($phone, $country): bool
{
$patterns = [
'us' => '~^(\+)?1?[0-9]{10}$~',
'au' => '~^(\+)?61?[0-9]{9}$~',
'by' => '~^(\+)?375?[0-9]{9}$~',
'cz' => '~^(\+)?420?[0-9]{9}$~',
'de' => '~^(\+)?49?[0-9]{10}$~',
'il' => '~^(\+)?972?[0-9]{9}$~',
'kz' => '~^(\+)?7?[0-9]{10}$~',
'kg' => '~^(\+)?996?[0-9]{9}$~',
'pl' => '~^(\+)?48?[0-9]{9}$~',
'ro' => '~^(\+)?40?[0-9]{9}$~',
'ru' => '~^(\+)?7?[0-9]{10}$~',
'sk' => '~^(\+)?421?[0-9]{9}$~',
'th' => '~^(\+)?66?[0-9]{9}$~',
'ua' => '~^(\+)?380[0-9]{9}$~',
'uz' => '~^(\+)?998?[0-9]{9}$~'
];
if (isset($patterns[$country])) {
return (bool)preg_match($patterns[$country], $phone);
} else {
return false;
}
}
(Javascript)
$("#phoneinput").on('countrychange', function () {
const country = window.iti.getSelectedCountryData().iso2;
const input = $('input[name="country"]');
input.val(country);
});
});
И в самом "country" идет получение двух букв страны и в последствии всё сверяется по регурярному выражению.
Предложите пожалуйста решение, чтобы каждый раз не добавлять вручную? Точнее более универсальное решение, может какую-то библиотеку для этого. Заранее всем большое спасибо.