Все, что вам нужно, это множественная замена, в основном с тремя правилами:
- заменить
-
или /
пустой строкой - заменить ноль в начале на
+381
- Поставьте
+
в начале номера, если первое число от 1 до 9
Проверьте это PHP Demo ,
$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
Дайте мне знать, если какой-либо из ваших случаев будет раскрыт.