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

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

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #35663
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Есть ли стандартная функция, которая оставляет в строке только цифры?

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

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

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

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

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С