首页 > 解决方案 > 如何使用 PHP 将数字格式化为塞尔维亚语格式?

问题描述

我有这样的表格发送的号码:

0641234567
064-123/4567
064/123-4567
3816412345678

它需要是这样的:

+3816412345678

带 +,不带 0,最多 14 个字符,包括“+”。

我如何使用正则表达式解决这个问题?

标签: phpregexnumbers

解决方案


您所需要的只是使用基本上三个规则进行多次替换,

  • 替换-/用空字符串
  • 将开头的零替换为+381
  • +如果第一个数字是 1 到 9,则将a放在数字的开头

检查这个PHP 演示

$arr = ['0641234567','064-123/4567','064/123-4567','3816412345678'];

foreach($arr as $s) {
    echo $s." --> ".preg_replace(['/^0/', '/^(?=[1-9])/', '/[-\/]/'], ['+381', '+', ''], $s)."\n";
}

印刷,

0641234567 --> +381641234567
064-123/4567 --> +381641234567
064/123-4567 --> +381641234567
3816412345678 --> +3816412345678

让我知道您的任何案件是否被发现。


推荐阅读