Убрать в строке все символы кроме цифр #382107


#0 by Алексей Петрович
Всех с прошедшими и предстоящими! Есть задачка. Имеем строку с номером телефона, плюс куча всяких примечаний и знаков препинания. Необходимо оставить только цифры. Делаю так: Но проблем в том, что функция "Число" преобразуте пробелы, дефисы в 0. Других идей, кроме как 10 раз сравнить символ с цифрами от 0 до 9 нет?
#1 by ТелепатБот
#2 by Sadovnikov
А считать код символа религия не позволяет?
#3 by kumena
Функция ТолькоЦифрыИзСтроки(Знач СтрокаПроверки, УчитыватьЛидирующиеНули = Истина, УчитыватьПробелы = Истина) Экспорт
#4 by Mikeware
А зачем?
#5 by Sadovnikov
Чтобы понять - число это или нет :)
#6 by skunk
#7 by Алексей Петрович
Спасибо. Мы, как бычно, легких путей не ищем:)
#8 by Defender aka LINN
Можно еще делать "Найти("0123456789", Символ) = 0" :)
#9 by kumena
может кто знает, типовая функция есть в 8 для этого?
#10 by Sadovnikov
Со знаками в Если не напутал? :)
#11 by Fragster
#12 by skunk
ага напутал... ну я же сказал... как-то так
#13 by Sadovnikov
"ну я же сказал... как-то так" - слив засчитан :))
#14 by Алексей Петрович
Типовой похоже нет. Хотя было бы не плохо..
#15 by Fragster
Новый ComОбъект, чтоли
#16 by Mikeware
А в "прогрессивной платформе" сравнение строк не канает?
#17 by Алексей Петрович
Элегантно.. Первое место:)
#18 by Mikeware
Кстати, аффтар, а если цифры есть в камментах? Номера телефонов все записаны стандартно? Или как попало?
#19 by skunk
я бы вообще-то до другого докапался )))
#20 by Алексей Петрович
Маловероятно. Но тут уж ничего не поделаешь... Да и ручной труд никто не отменял.
#21 by Алексей Петрович
До чего же?
#22 by skunk
1С своеобразно сравнивает строки ))) ... условие в никогда не выполниться
#23 by Mikeware
что "маловероятно"? Я бы делал через Регулярные выражения...
#24 by Fragster
эээ... меня точно никто не видит?
#25 by Sadovnikov
Да заценили уже давно. Или тебе так сильно общественное поощрение необходимо? :)
#26 by Fragster
а то :)
#27 by у лю 427
а слабо сделать без оператора ЕСЛИ? Function СухойОстаток(С)
#28 by Алексей Петрович
Там бардак тот еще. Телефон может быть записан как угодно. И "52-52-52", и "36- 12,,50 спросить гену3" и т.д. Если расскажите как средствами 1С анализировать сей момент, буду признателен..
#29 by Sadovnikov
Формочка, на которой показывается эта строчка и поле для ввода с надписью: "Гад! Ну-ка быстро вбил нормальный номер телефона!!!".
#30 by Алексей Петрович
Элегентно:) Но задача сейчас обработать то, что уже введено. Текущая работа контролируется жестко.
#31 by Злобный Йожег
Маску назначь полю телефона...
#32 by Sadovnikov
"Но задача сейчас обработать то, что уже введено" - обрати внимание, на предлагаемой форме - 2 поля. В первом - уже вбитый в базу тескт, из которого пользователю мягко и вежливо предлагается извлечь нормальный номер телефона :)
#33 by Алексей Петрович
И все же задача невыполнима. Элементов в справочнике тысячи. Забивалось реально как попало. Не ожидал, что у людей такая фантазия:) Делать несколько масок? Хм..
#34 by Кузнецов Максим
не надо никаких масок. пусть руками все перебивают. фокусничать в данном случае нецелесообразно, да и себе дороже.
#35 by Алексей Петрович
Вот я и хочу оставить одни цифры. Пусть разбираются дальше сами.
#36 by Sadovnikov
Может оказаться, что сделаешь только хуже... Например из строки "Сергей-2, дом 15, 3-й сотовый телефон украли, новый городской - 02".
#37 by Кузнецов Максим
как верно подметил , ИсходнаяСтрока = "Офис №1 50-14-18"; выдаст тебе 1501418
#38 by Планета Обезьян
удалить все слова и все одиночные цифры, а оставшиеся проанализировать на предмет наличия дефисов и "кучности"
#39 by Sadovnikov
Ага. И еще свериться телефонной базой данных...
#40 by Алексей Петрович
Реквизит называется "Номер телефона", поэтому другие цифры там маловероятны. Хотя "удалить одиночные цифры" - идея мне понравилась.
#41 by Mikeware
Ну не с таким же паттерном... ---------------- Найдено яндексом за 2 минуты: шаблон номера телефона. ^((d+)){0,1}d{3}-d{2}-d{2}$ ^ – Этот символ указывает, что здесь начинается искомая строка. (– Код города располагается внутри скобок. ( – Открывающая скобка. d+ – После скобки должен располагаться код города – одна или несколько цифр. ) – Закрывающая скобка. ) – Закрывающая скобка – метасимвол, указывающий, что здесь заканчивается группируемое выражение (в данном случае, код города). {0,1} – Этот метасимвол указывает, что выражение в скобках (код города) может повторяться от нуля до одного раза, то есть код города можно не указывать. d{3}-d{2}-d{2} – Три группы цифр – одна группа по три и две по две цифры. Цифры разделены дефисами. $ – Этот знак показывает, что здесь заканчивается подстрока. -------------- - программки проверки регулярных выражений...
#42 by у лю 427
полная фигня... заставляет писать номер в виде телефоны же часто пишут в виде, удобном для запоминания например 1-345-345
#43 by у лю 427
к тому же сейчас много коротких номеров.... непонятной длины
#44 by Mikeware
Это просто пример. Что мешает проверить ^((d+)){0,1}d{3}-d{2}-d{2}$ и ^(d+){0,1}d{3}-d{2}-d{2}$ и ^d{3}-d{2}-d{2}$ и ^d{2}-d{2}-d{2}$ и ^d{3}-d{3}$ ?
#45 by DTrofimov
Строка(Число(Симв)) Если пришли к тому же символу - значит циферка
#46 by Torquader
Например, офис № 1 123 456 - данное выражение системой в любом случае будет понято, как 1123456 и никуда от этого не денешься. С другой стороны 123 456 Гоша 93, можно отсеить номер телефона по наличию букв между цифрами. Вообще-то, программа делает всё автоматом, а потом те места, которые ей показались странными отображает пользователю, чтобы он понял, что к чему (или печатает на бумаге, чтобы секретарша просто повычёркивала те места, которые программа не поняла).
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С