从字符串中只删除国家代码而不是 slahsh?

Remove only country code from string not slahsh?

我只想删除国家代码而不是字符串中的斜杠。

假设: phone 号码是 +1-555-555-5555 我想要 555-555-5555

我的密码是

<?php 
$sPhoneNumber =get_post_meta($post_id, '_vfb_field-23', true);
echo $result = preg_replace("/[^0-9]/", "", $sPhoneNumber);
?>

它给了我像 15555555555 这样的输出,我想要 555-555-5555

可以用substr获取第一个'-'后的子串,live demo here.

substr($string, strpos($string, '-') + 1);

使用以下正则表达式替换:

$result = preg_replace("/^\+\d+-/", "", $sPhoneNumber);

它将从字符串的开头删除 1+ 个数字和后面的 -

使用此解决方案,您将避免更改不以 + 开头且后跟数字的字符串。

您可以指定需要删除的国家代码,而不是 \d+。比如说,您需要删除 2248 代码:

$result = preg_replace("/^\+(?:48|22)-/", "", $sPhoneNumber);

请参考:Working Demo

<?php
$phonenumber = '+1-555-555-555';
$array = explode("-", $phonenumber,2);
echo $array['1'];
?>

更多详情PHP EXPLODE

试试这个,使用 preg_replace

$result = preg_replace('~^[0\D]++|\D++~', '', $sPhoneNumber);

DEMO

试试这个网站 http://www.phpliveregex.com/p/jXB 这个注册

[^\+[0-9]-].*

使用这个功能

preg_match("/[^\+1-].*/", $input_line, $output_array);

如此基本,您会发现所有的都不是“+1-”

很简单,我们可以用substr()函数来截取一部分字符串。

<?php
echo substr("+1-555-555-5555",3);
?>

这是一个linkPHP substr()