Если имеются куски текста, в которых встречается номер телефона, то как для такого отдельного фрагмента удалить всё, кроме номеров телефонов? Вероятнее всего, что в таком фрагменте будет только один номер телефона. Интересует универсальное решение в коде для разных языков программирования, в том числе для Python (на нем сначала будет испытываться).
Любого формата, который может встретится в интернет справочниках (списков фирм на определенной улице или сгруппированных по какому то признаку).
нет понятия "любой" формат примеры номеров 999 999 99 99 (999) 999 99 99 (999)-999-99-99 999-999-9999 99-99-99 +79999999999 а может и просто 99999999999 и до бесконечности, а еще даже латиницей может быть типа ABAAC итд итп потому сначала определитесь с форматами, которые будете поддерживать, а потом уже и регулярки можно писать
Возможно устроюсь в Call центр, потому что у нас в городе сложно найти работу. Пришел на собеседование. Они звонят с сотового телефона по несколько часов в день в заведения общепита своего региона, предлагая оборудование. Думаю, что это вредно, когда сотовый у головы по несколько часов в день и набор номера вручную кнопками отнимает много времени. Хочу автоматизировать, чтобы можно было быстро набирать номер прямо с компьютера. Одна из частей автомазизации - копирование номера телефона в буфер обмена из браузера. Телефон в каталогах может быть совершенно в разных форматах. То есть заранее не знаю, из какого каталога буду брать номера. Потом, если в эту фирму не устроюсь, то для другой работы уже будет задел. Как это копирование планирую осуществлять. Кликаю в браузере мышью по номеру телефона. В буфере обмена оказывается кусок текста. Возможно можно делать захват только цифр. Только не знаю, как это делать, поэтому расматриваю такой вариант, когда копируется кроме цифр ещё и мусор. Это ещё может быть полезно, если промахнулся по номеру. Принцип такой: После двойного клика курсор уже стоит в тексте. Эмулируем нажатия клавиш: Влево - 20-30 раз. Потом зажали ctrl - и вправо - раз 40-50. ctrl+c. В итоге в буфер попал кусок текста по следующему принципу. s = 'Пример произвольного числа +7(35335)532568363734. Число может быть и' Возможно кликать буду не двойным щелчком, а одинарным.
ну так это не автоматическое, а полуавтоматическое. тогда просто можно все откидывать кроме цифр и все
PHP: $str = "sdfdfs123456789mnbm0hfdec,hrthytr."; $result = preg_replace("/[^0-9]/", '', $str); echo $result; как то так, не проверял
В базу сохранить все коды всех стран + длину последующих цифр, вытаскивать из базы и той же регуляркой проверять, это самый оптимальный и точный вариант
$number=preg_replace("/[^0-9]/","", $input_text); останутся одни циферки потом прогоняешь через switch чтобы отфильтровать телефонные номера от просто набора цифр и в набор астериску
PHP: switch ($quant) { case 3: $dig3=digit3($destNumber); $dn=$dig3[0]; break; case 4: $dig4=digit4($destNumber); $dn=$dig4[0]; break; case 5: $dn=$destNumber; break; case 6: $dig6=digit6($destNumber); $dn=$dig6[0]; break; case 7: $dig7=digit7($destNumber); $dn=$dig7[0]; break; case 8: $dn=null; break; case 9: $dig9=digit9($destNumber); $dn=$dig9[0]; break; case 10: $dn=null; $level=0; break; case 11: $dig11=digit11($destNumber); $dn=$dig11[0]; break; case 12: $dig12=digit12($destNumber); $dn=$dig12[0]; break; case 13: $dig13=digit13($destNumber); $dn=$dig13[0]; break; case 14: $dig14=digit14($destNumber); $dn=$dig14[0]; break; default: $dn=null; } if ($level==0) { echo "Набраный номер<br>не существует!"; } фильтруешь по длинне номера а потом по первым цифрам PHP: function digit6 ($x) { $state=array(); $z=substr($x,0 ,1); switch ($z) { case 0: $ds=null; break; case 1: $ds=null; break; case 2: $ds='9'.$x; break; case 3: $ds='9'.$x; break; case 4: $ds='9'.$x; break; case 5: $ds='9'.$x; break; case 6: $ds='9'.$x; break; case 7: $ds=null; break; case 8: $ds=null; break; case 9: $ds=null; break; default: $ds=null; } return $ds; } как то так. У вас в зависимости от региона может быть другой набор фильтров --- Добавлено --- на $level не обращайте внимание это уровень доступа для юзеров,
код не элегантный, это точно. Но вопрос не в коде, а в том что надо прогнать полученные циферки через шаблон и в результате получить 1 этот телефонный номер? 2 этот номер используется в этом регионе? 3 если да то модифицировать для осуществления звонка из диалплана астериск 4 по номеру получить провайдера для записи в БД 5 по номеру установит level по которому ограничивается доступ конкретного юзера для осуществления звонка по этому направлению. А приведенные фрагменты сильно обрезаны.. Извините за офф-топик. Я просто хотел сказать что для звонка нужно прогонять полученные циферки через шаблон. А как будет прописан шаблон, это другой вопрос...
https://chrome.google.com/webstore/detail/click-to-call-chrome-exte/cacalbbpkmcjpnlcjanfmmnffddhibhc здорово, правда?