我得到以下变量
$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。
如何阻止这种情况发生?
由于
答案 0 :(得分:7)
正如其他人所指出的那样,通过将3个字符的字符串(substr
)与1个字符的字符串(+44
)进行比较,您错误地使用了substr($inputMobile, 0, 1)
。试试这个,而不是:
$inputMobile = $_POST["inputMobile"];
$inputMobile = preg_replace('/^(0*44|(?!\+0*44)0*)/', '+44', $inputMobile);
这样做的目的是用044
替换前导44
或+44
(以及任何后续零),如果数字没有前导{{1或044
,只需在开头添加44
。
Here's a demo。以下示例:
+44
都是标准化的,并成为07714....
+447714...
00447714...
。