Я получаю следующую переменную
$inputMobile = $_POST["inputMobile"];
Теперь числа могут прийти разными способами, например,
07714....
+447714...
00447714...
Что мне нужно сделать, так это убедиться, что любой номер, который я получу, поменяю его на +44. У меня было что-то вроде этого
$inputMobile = $_POST["inputMobile"];
if (substr($inputMobile, 0, 1) === '+44') {
$inputMobile = $_POST["inputMobile"];
}
else {
$inputMobile = preg_replace('/^0?/', '+44', $inputMobile);
}
Проблема в том, что если я дам ему число, например +447714, он вернется + 44 + 44714.
Как я могу предотвратить это?
Спасибо
Как уже отмечали другие, вы используете substr
неправильно сравнивая 3-х символьную строку (+44
) в 1-символьную строку (substr($inputMobile, 0, 1)
). Попробуйте это вместо этого:
$inputMobile = $_POST["inputMobile"];
$inputMobile = preg_replace('/^(0*44|(?!\+0*44)0*)/', '+44', $inputMobile);
Что это делает, это заменить ведущий 044
или же 44
(а также любые последующие нули) с +44
и, если номер не имеет ведущего 044
или же 44
Просто добавляет +44
в начале.
Вот демо. Следующие примеры:
07714....
+447714...
00447714...
все стандартизированы и становятся +447714
,
Других решений пока нет …