- В этой теме 1 ответ, 2 участника, последнее обновление 2 недели, 6 дней назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Есть ли функция в 1С для удаления всех символов, кроме цифр, из строки?
Есть ли стандартная функция, которая оставляет в строке только цифры?
Сергей, в стандартной библиотеке 1С нет готовой функции, которая бы напрямую оставляла в строке только цифры, удаляя все остальные символы. Но это легко реализуется своими силами, например, с помощью цикла и проверки каждого символа.
Вот пример простой функции на 1С, которая удаляет из строки все нечисловые символы:
|
1 2 3 4 5 6 7 8 9 10 |
Функция ОставитьТолькоЦифры(Строка) Результат = ""; Для Индекс = 1 По СтрДлина(Строка) Цикл Символ = Сред(Строка, Индекс, 1); Если СтрНайти("0123456789", Символ) > 0 Тогда Результат = Результат + Символ; КонецЕсли; КонецЦикла; Возврат Результат; КонецФункции |
Эта функция перебирает каждый символ входной строки и добавляет в результат только цифры.
Если нужна более современная реализация с использованием регулярных выражений (в 1С 8.3 можно через COM-объект VBScript.RegExp), то можно сделать так:
|
1 2 3 4 |
Функция ОставитьТолькоЦифры(Строка) РегЭксп = Новый РегулярноеВыражение("D", Истина); Возврат РегЭксп.Заменить(Строка, ""); КонецФункции |
Этот вариант удалит все символы, которые не являются цифрами.
Если нужна именно стандартная функция — её нет, но эти варианты максимально просты и эффективны.