Подскажите, кто знает, как поставить условие, что дефиса может и не быть.
$str = preg_replace('/^(0\-50\-)|(050\-)/ui', '(050) ', $str);
Спустя 2 минуты, 48 секунд (17.09.2011 - 15:13) tazododu написал(а):
ну и вообще, как можно сделать, чтобы не писать:
а одним прегреплейсом?
$str = preg_replace('/^(0\-39\-)/ui', '(039) ', $str);
$str = preg_replace('/^(0\-50\-)/ui', '(050) ', $str);
$str = preg_replace('/^(0\-63\-)/ui', '(063) ', $str);
$str = preg_replace('/^(0\-66\-)/ui', '(066) ', $str);
$str = preg_replace('/^(0\-67\-)/ui', '(067) ', $str);
$str = preg_replace('/^(0\-68\-)/ui', '(068) ', $str);
$str = preg_replace('/^(0\-91\-)/ui', '(091) ', $str);
а одним прегреплейсом?
Спустя 14 минут, 21 секунда (17.09.2011 - 15:28) vital написал(а):
$str = preg_replace('/^0(:?[-]?)([\d]+)\(:?[-]?)/ui', '$1 ', $str);
Спустя 2 минуты, 22 секунды (17.09.2011 - 15:30) Winston написал(а):
Вот так можно сократить
Спустя 1 минута, 16 секунд Winston написал(а):
Для проверки
$str = preg_replace("#^(?:0-?(39|50|63|66|67|68|91))#iu", '($1)', $str);
Спустя 1 минута, 16 секунд Winston написал(а):
Для проверки
$str = '0-50';
$str = '050';
Спустя 3 минуты, 5 секунд (17.09.2011 - 15:33) vital написал(а):
Цитата (Winston @ 17.09.2011 - 14:30) |
Вот так можно сократить$str = preg_replace("#^(?:0-?(39|50|63|66|67|68|91))#iu", '()', $str); |
не универсально
Спустя 2 минуты, 14 секунд (17.09.2011 - 15:35) tazododu написал(а):
Цитата (vital @ 17.09.2011 - 12:33) | ||
не универсально |
в моем случае это самое то! т.к. мне необходимо проверять только определенные коды телефонов
Спустя 3 минуты, 17 секунд (17.09.2011 - 15:39) tazododu написал(а):
еще вопрос, что означает в регулярке (?:0 ?
Спустя 55 секунд (17.09.2011 - 15:40) vital написал(а):
(:? )
служит для группироки не возвращающей результат. RTFM!
служит для группироки не возвращающей результат. RTFM!
Спустя 5 секунд (17.09.2011 - 15:40) Winston написал(а):
Это значит, что совпадения не будут сохранены в первую пару скобок.
Спустя 5 минут, 1 секунда (17.09.2011 - 15:45) tazododu написал(а):
$str = '0-50-123-456';
echo preg_replace("#^(?:0-?(39|50|63|66|67|68|91|92|93|94|95|96|97|98|99))#iu", '($1)', $str);
вернул (50)-123-456, должен был (050) 123-456. что-то не так с вашим решением
Спустя 2 минуты (17.09.2011 - 15:47) Winston написал(а):
Поменяй вот так
Спустя 1 минута, 47 секунд Winston написал(а):
Даже так
'(0$1)', $str
Спустя 1 минута, 47 секунд Winston написал(а):
Даже так
$str = '0-50-123-456';
echo preg_replace("#^(?:0-?(39|50|63|66|67|68|91|92|93|94|95|96|97|98|99)-?)#iu", '(0$1) ', $str);
Спустя 3 минуты, 23 секунды (17.09.2011 - 15:50) tazododu написал(а):
Цитата (Winston @ 17.09.2011 - 12:49) |
Даже так$str = '0-50-123-456'; |
спасибо большое! вы мне очень помогли!