2013-02-18 49 views
0

基本上我需要做的是,当我有这样一个电话号码:31655334868我需要更改到:1655334868(除去第一3PHONENUMBER正则表达式来解决这个前缀

但我也可以有0031655334868然后我需要将其更改为:1655334868

我该如何在PHP中使用正则表达式?还是有更好的替代方法?

+3

从您的示例y你可以从最后10个字符中删除'substr'。 – 2013-02-18 15:57:17

+0

@kolink Upvote为最简单的答案不是我们大多数人都准备找到:) – 2013-02-18 15:58:46

+0

大声笑..尼斯答案...但没有...我可以有10或9个字符的电话号码..是前缀是依赖于国家 – vsergiu 2013-02-18 16:00:09

回答

1

如果你想用正则表达式来做到这一点,那么你可以使用下面的代码:

(这也考虑到了,你可以有很多开始+31

$phone1 = '31655334868'; 
$phone2 = '0031655334868'; 
$phone3 = '+31655334868'; 

if (preg_match ('/^.*3([0-9]{10})$/', $phone2, $matches)) 
{ 
    print_r($matches); 
    echo $matches[1]; // will always contain the desired result 
} 
else 
{ 
    echo 'no'; 
} 

工作示例:

http://codepad.viper-7.com/FAuh2c

0
echo substr($phoneNumber, -10); 
+0

返回'3165533486'为第一个例子,'0031655334'为第二个例子。你有没有想过? – 2013-02-18 16:00:44

+0

谢谢神秘,正在编辑它,你打败了我 – Nick 2013-02-18 16:01:01

+1

@JohnDoe格式正确或不正确,但它仍然是错误的。 – 2013-02-18 16:01:44