Вырезать номера телефонов на php

123
domen4you
На сайте с 08.03.2013
Offline
53
#11

<?php

$text = "+79261234567
89261234567
79261234567
+7 926 123 45 67
8(926)123-45-67
123-45-67
9261234567
79261234567
(495)1234567
(495) 123 45 67
89261234567
8-926-123-45-67
8 927 1234 234
8 927 12 12 888
8 927 12 555 12
8 927 123 8 123";

$text = preg_replace('/[0-9]{3,12}/', '***' , $text);

echo $text;
?>


---------- Добавлено 24.11.2014 в 20:13 ----------

или регулярка с хабра

$text = preg_replace('/((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}/', '***' , $text);

siv1987
На сайте с 02.04.2009
Offline
427
#12
domen4you:
/[0-9]{3,12}/

Такой regexp захватит много лишнего. Если просто и лаконично поиск нужно делать как минимум от 6 цифр

/\+?\d([ -]*\d){6,10}/

87793
На сайте с 12.09.2009
Offline
661
#13
siv1987:
Если просто и лаконично поиск нужно делать как минимум от 6 цифр

Почему от 6? 😕

Наше дело правое - не мешать левому!
siv1987
На сайте с 02.04.2009
Offline
427
#14
87793:
Почему от 6?

Используйте больше, если вам 6 кажется мало.

87793
На сайте с 12.09.2009
Offline
661
#15

Ну, я-то такое использовать точно не буду :p.

У меня не стоит и, надеюсь, никогда не будет стоять задачи маскировать введенные кем-то номера телефонов.

Я обсуждаю задачу абстрактно (относительно своих потребностей) 😂.

А по поводу моего вопроса - раз Вы его превратно поняли :), уточню.

Я не хотел спросить "почему 6, а не больше".

Я хотел спросить - "почему 6, а не меньше" 😕.

siv1987
На сайте с 02.04.2009
Offline
427
#16

Потому же, почему нельзя использовать и три и меньше - увеличивается процент ложных совпадений.

manaz
На сайте с 13.12.2013
Offline
61
#17
domen4you:
<?php

$text = "+79261234567
89261234567
79261234567
+7 926 123 45 67
8(926)123-45-67
123-45-67
9261234567
79261234567
(495)1234567
(495) 123 45 67
89261234567
8-926-123-45-67
8 927 1234 234
8 927 12 12 888
8 927 12 555 12
8 927 123 8 123";

$text = preg_replace('/[0-9]{3,12}/', '***' , $text);

echo $text;
?>


---------- Добавлено 24.11.2014 в 20:13 ----------

или регулярка с хабра
$text = preg_replace('/((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}/', '***' , $text);

Спасибо но почемуто не пашет, кучу всяких регулярок перепробовал но не не как не работает.

сайт на джумла компонент форума Кунена

domen4you
На сайте с 08.03.2013
Offline
53
#18
siv1987:
Такой regexp захватит много лишнего. Если просто и лаконично поиск нужно делать как минимум от 6 цифр
/\+?\d([ -]*\d){6,10}/

всё согласно заданию))

К примеру если в тексте более двух чисел чтоб шла замена цыфр на звездочки или вообще удалялись.

Вообще надо брать менее жесткий вариант и смотреть по обратной связи.

manaz
На сайте с 13.12.2013
Offline
61
#19

А на JS можно так же сделать?

domen4you
На сайте с 08.03.2013
Offline
53
#20
manaz:
Спасибо но почемуто не пашет, кучу всяких регулярок перепробовал но не не как не работает.

значит дело не в регулярках, а в том куда вы этот код вставляете и что попадает в переменную $text, а в неё должно попасть нужное сообщение форума, а это уже другой вопрос

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий