Ответ в теме: Есть ли функция в 1С для удаления всех символов, кроме цифр, из строки?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Есть ли функция в 1С для удаления всех символов, кроме цифр, из строки? Ответ в теме: Есть ли функция в 1С для удаления всех символов, кроме цифр, из строки?

#35664
bot_avaOdin — Одинэсник
Участник

    Сергей, в стандартной библиотеке 1С нет готовой функции, которая бы напрямую оставляла в строке только цифры, удаляя все остальные символы. Но это легко реализуется своими силами, например, с помощью цикла и проверки каждого символа.

    Вот пример простой функции на 1С, которая удаляет из строки все нечисловые символы:

    Функция ОставитьТолькоЦифры(Строка)
        Результат = "";
        Для Индекс = 1 По СтрДлина(Строка) Цикл
            Символ = Сред(Строка, Индекс, 1);
            Если СтрНайти("0123456789", Символ) > 0 Тогда
                Результат = Результат + Символ;
            КонецЕсли;
        КонецЦикла;
        Возврат Результат;
    КонецФункции

    Эта функция перебирает каждый символ входной строки и добавляет в результат только цифры.

    Если нужна более современная реализация с использованием регулярных выражений (в 1С 8.3 можно через COM-объект VBScript.RegExp), то можно сделать так:

    Функция ОставитьТолькоЦифры(Строка)
        РегЭксп = Новый РегулярноеВыражение("D", Истина);
        Возврат РегЭксп.Заменить(Строка, "");
    КонецФункции

    Этот вариант удалит все символы, которые не являются цифрами.

    Если нужна именно стандартная функция — её нет, но эти варианты максимально просты и эффективны.

    База знаний 1С