идентификация телефонных номеров (другой формат, но тот же номер) - PullRequest
0 голосов
/ 05 февраля 2020

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

Я из Бельгии. Наши (мобильные) номера телефонов выглядят так: 04xx xx xx xx (например, 04 99 12 34 56). Код страны Бельгии - 0032, поэтому 0032499 12 34 56 также является действительным номером телефона, как +32499 12 34 56.

Так что у меня нет трех телефонных номеров, которые абсолютно одинаковы, но написаны по-разному и система не распознает их как одинаковые.

Возможное решение (не будет работать)

Каждый бельгийский номер телефона имеет одинаковое окончание:

00324xxxxxxxx

+ 324xxxxxxxx

04xxxxxxxx

Я могу проверить последние 9 цифр (начиная с 4), но проблема в том, что не только люди из Бельгии могут зарегистрироваться, но и другие страны могут зарегистрироваться. Номер мобильного телефона в США не заканчивается на 4xxxxxxxx, поэтому я не смог выполнить эту проверку для этих номеров.

Возможное решение

Добавление выпадающего списка со всеми кодами стран и нормализация каждого телефонного номера перед его отправкой.

Для бельгийских телефонных номеров: +32 (раскрывающийся список) 0499 12 34 56 (ввод) станет +32 (раскрывающийся список) 499 12 34 56 (лишить 0) .

Возможное решение 2

Я мог бы использовать подобный API (https://www.searchbug.com/api/identify-phone-number.aspx), но он не бесплатный. Есть ли бесплатное решение, которое я могу принять самостоятельно?

1 Ответ

1 голос
/ 05 февраля 2020

Если ваш веб-сайт реализован в PHP, вы можете нормализовать свои номера телефонов, прежде чем вставлять их в свою базу данных следующим образом:

<?php
$input_number="00324xxxxxxxx";
// or v.gr. $input_number="04xxxxxxxx";
$number=$input_number;

$number=preg_replace("/^00/", "+", $number);
$number=preg_replace("/^0/", "+32", $number); // see remark below

echo "input: ", $input_number, ", normalized form: ", $number, "\n";

Если числа в Формат 04xxxxxxxx не должен быть только бельгийскими номерами, добавьте функцию выпадающего списка, чтобы заставить ваших пользователей предоставлять префикс страны.

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