2015-11-09 2 views
1

Я получаю следующую переменнуюPHP подкачки 0 с +44

$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.

Как я могу остановить это?

Благодаря

+7

«Если первый символ - это последовательность из трех символов ...», может быть суть вашей проблемы здесь. – tadman

+3

'substr ($ inputMobile, 0, 1) === '+ 44'' никогда не может быть« истинным ». – lxg

ответ

7

Как уже отмечалось, вы используете 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 в начале.

Here's a demo. Следующие примеры:

07714.... 
+447714... 
00447714... 

все стандартизированы и стать +447714.

 Смежные вопросы

  • Нет связанных вопросов^_^