Разделить телефон на части 999-99-99-99

1. ШЕДЕВР (23.04.2013 / 00:13)
Формат телефонного номера 999-99-99-99. Как из 9 цифренной переменной 999999999 сделать 999-99-99-99 ? В интернете ковырялся, не нашел способа...

2. максим (23.04.2013 / 02:17)
вроди 10 должно цифр

3. Tolikasi (23.04.2013 / 02:44)
<?php
preg_match("/(\([0]{1}[9]{2}\))([9]{3})-([9]{2})-([9]{2})/");
?>


4. Nervous (23.04.2013 / 04:16)
3. anatoly, А если так
<?php

preg_match("/(\([0]{9}[3]{???}\))([9]{3})-([9]{2})-([9]{2})/");

?>
Номер как в украине 9 значные.

5. Равиль (23.04.2013 / 06:16)
 <?php $t='999999999'; //Номер
$t2=$t[0].$t[1].$t[2].'-'.$t[3].$t[4].'-'.
$t[5].$t[6].'-'.$t[7].$t[8]; //Преобразованый номер ?> 
Сильно не бейте D

6. Богдан (23.04.2013 / 09:22)
3,4.
Во первых preg_match не делает замену - а ищет по шаблону, и принимает минимум 2 значения.
Во вторых что это у вас за номера такие которые только из девяток состоят? Вместо [9] - [0-9] или \d

7. ШЕДЕВР (23.04.2013 / 10:13)
2,3,4,5, спасибо!

6, ("/(\([0]{0-9}[3]{???}\))([0-9]{3})-([0-9]{2})-([0-9]{2})/") получается так и вместо прег_матч использовать стр_реплэйс?

8. Богдан (23.04.2013 / 23:21)
7. чем тебя вариант ravil-b не устраивает? если регуляркой то:
$number = preg_replace('~(\d{3})(\d{2})(\d{2})(\d{2})~', '$1-$2-$3-$4', $number);


9. Сергей (23.04.2013 / 23:57)
7. Moto-Moto, а я бы сделал так

<?php
$n = '999999999';
$n = preg_replace("/(\d{3,})(\d{2})(\d{2})(\d{2})$/", "\\1-\\2-\\3-\\4", $n);
echo $n;
?>


10. ШЕДЕВР (24.04.2013 / 01:00)
8, 9, спасибо большое. я одно не учел. 9 значные номера это мобильные. И это совсем не универсальные, так как 9 значные только это у нас, в др странах он меньше или больше. А городские номера вообще 6 значные. МОжет сделать так: все не четные номера количеством цифр от 5,7,9,11,13,15 делить так: первый блок трехзначный, а остальные по два, то есть ХХХ ХХ ХХ ...., а четные номера делить просто на 2: ХХ ХХ ХХ ХХ....

11. Артур (24.04.2013 / 01:39)
Вроде как домашние делятся вот так 2-222-222

12. Петр (24.04.2013 / 13:34)
10. Moto-Moto,
<?php
if(strlen($str)%2){
 $t=$str[0];
 $str=substr($str,1);
} else {
 $t='';
}
$str=str_split($str, 2);
$str[0]=$t.$str[0];
echo join('-', $str);
?>


13. ШЕДЕВР (24.04.2013 / 14:33)
12, идеально!) именно т очто нужно

URL: https://visavi.net/topics/37625