Проверка на ЭтоРазделительСлов
ЭтоРазделительСлов
Назначение
Определяет, является ли переданный символ разделителем слов. Используется при разборе текста на лексемы, поиске границ слов и токенизации строк.
Синтаксис
СтроковыеФункцииКлиентСервер.ЭтоРазделительСлов(<КодСимвола>, <РазделителиСлов>)
Параметры
| Параметр | Тип | Описание |
|---|---|---|
| КодСимвола | Число | Код проверяемого символа (например, код Unicode). |
| РазделителиСлов | Строка (необязательный) | Строка, содержащая символы-разделители. Если параметр не указан или равен Неопределено, используется стандартный набор правил (см. ниже). |
Возвращаемое значение
Булево
- Истина — символ с указанным кодом является разделителем слов.
- Ложь — символ не является разделителем (т.е. является частью слова).
Правила определения разделителей
Если параметр РазделителиСлов передан
Символ считается разделителем, если он присутствует в строке РазделителиСлов.
Если параметр РазделителиСлов не указан (значение по умолчанию)
Разделителем считается любой символ, НЕ входящий в следующие категории:
| Категория | Диапазон кодов | Примеры |
|---|---|---|
| Цифры | 48 – 57 | 0 1 2 3 4 5 6 7 8 9 |
| Латинские буквы (верхний регистр) | 65 – 90 | A B C ... Z |
| Латинские буквы (нижний регистр) | 97 – 122 | a b c ... z |
| Символ подчеркивания | 95 | _ |
| Локализованные символы слов | определяются через ПриОпределенииСимволовСлов | буквы кириллицы, национальные алфавиты и т.д. |
Важно: Функция учитывает локализацию через вызов СтроковыеФункцииКлиентСерверЛокализация.ПриОпределенииСимволовСлов(Диапазоны). Это позволяет корректно обрабатывать буквы кириллицы и других алфавитов как части слов.
Примеры использования
// Проверка буквы (не разделитель)
Результат = ЭтоРазделительСлов(КодСимвола("А")); // Ложь (если кириллица добавлена в локализации)
// Проверка цифры (не разделитель)
Результат = ЭтоРазделительСлов(КодСимвола("5")); // Ложь
// Проверка пробела (разделитель)
Результат = ЭтоРазделительСлов(КодСимвола(" ")); // Истина
// Проверка запятой (разделитель)
Результат = ЭтоРазделительСлов(КодСимвола(",")); // Истина
// С явным перечислением разделителей
Результат = ЭтоРазделительСлов(КодСимвола("."), ",.!"); // Ложь, т.к. точки нет в списке
Результат = ЭтоРазделительСлов(КодСимвола("!"), ",.!?"); // Истина
Примечания
- Функция предназначена для низкоуровневого анализа строк, например, при реализации собственных парсеров или алгоритмов выделения слов.
- Расширение набора "символов слов" выполняется через механизм локализации, что делает функцию гибкой для разных языков.
- Если требуется проверять только конкретные символы-разделители, эффективнее передать их строкой в параметре РазделителиСлов.
// Определяет, является ли символ разделителем.
//
// Параметры:
// КодСимвола - Число - код проверяемого символа;
// РазделителиСлов - Строка - символы разделителей. Если параметр не указан, то
// разделителем считаются все символы, не являющиеся цифрами,
// латинскими и кириллическими буквами, а также знаком подчеркивания.
//
// Возвращаемое значение:
// Булево - Истина, если символ с кодом КодСимвола является разделителем.
//
Функция ЭтоРазделительСлов(КодСимвола, РазделителиСлов = Неопределено) Экспорт
Если РазделителиСлов <> Неопределено Тогда
Возврат СтрНайти(РазделителиСлов, Символ(КодСимвола)) > 0;
КонецЕсли;
Диапазоны = Новый Массив;
СтроковыеФункцииКлиентСерверЛокализация.ПриОпределенииСимволовСлов(Диапазоны);
Диапазоны.Добавить(Новый Структура("Мин,Макс", 48, 57)); // цифры
Диапазоны.Добавить(Новый Структура("Мин,Макс", 65, 90)); // латиница большие
Диапазоны.Добавить(Новый Структура("Мин,Макс", 97, 122)); // латиница маленькие
Диапазоны.Добавить(Новый Структура("Мин,Макс", 95, 95)); // символ "_"
Для Каждого Диапазон Из Диапазоны Цикл
Если КодСимвола >= Диапазон.Мин И КодСимвола <= Диапазон.Макс Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат Истина;
КонецФункции
Похожее
- МЕЖДУНАРОДНЫЕ СТАНДАРТЫ ФИНАНСОВОЙ ОТЧЕТНОСТИ ---
- Форматирование даты, числа, булевого значения на языке программирования 1С Конфигуратор
- «Динамика плановых начислений (Динамика изменения ФОТ)» для 1С:ЗУП ЗУП / ЗУП Отчеты
- Разложить строку на несколько строк по указанному разделителю Строковые функции
- УНФ 3.0 Как изменить отображаемую информацию на дисплее покупателя? УНФ 3.0 / РМК
