// Параметры: // СтрокаПараметр - строка, проверяемая строка. // // Возвращаемое значение: // Истина - строка состоит из допустимых символов // Ложь - в строке встречаются недопустимые символы // // Описание: // Строка проверяется на наличие только русских и латинских букв; // кроме того, допускаются дефис, "Ё", "ё". // Функция СтрокаНаписанаРусскимиИлиЛатинскими(Знач СтрокаПараметр) СтрокаПараметр = СокрЛП(СтрокаПараметр); КоличествоСимволов = СтрДлина(СтрокаПараметр); Если КоличествоСимволов > 0 Тогда ПервыйСимвол = КодСимвола(Лев(СтрокаПараметр,1)); Русские = (ПервыйСимвол >= 192) или (ПервыйСимвол = 184) или (ПервыйСимвол = 168); СписокДопустимыхЗначений = Новый Соответствие; СписокДопустимыхЗначений.Вставить(184,Истина); // ё СписокДопустимыхЗначений.Вставить(168,Истина); // Ё СписокДопустимыхЗначений.Вставить(45,Истина); // "-" Для Сч = 1 По КоличествоСимволов Цикл Код = КодСимвола(Сред(СтрокаПараметр,Сч)); // Большие латинские буквы: 65 - 90 // Маленькие латинские буквы: 97 - 122 // Русские буквы: 192 и больше //русские: Если Русские Тогда Если (СписокДопустимыхЗначений[Код] = Неопределено) и (Код < 192) Тогда Возврат Ложь; КонецЕсли; // латинские: ИначеЕсли (Код <> 45) и ((Код < 65) или (Код > 90) и (Код < 97) или (Код > 122)) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат Истина; Иначе Возврат Истина; КонецЕсли; КонецФункции
Функция СтрокаНаписанаПоРусски(Знач СтрокаПараметр) Экспорт СтрокаПараметр = СокрЛП(СтрокаПараметр); СписокДопустимыхЗначений = Новый СписокЗначений; СписокДопустимыхЗначений.Добавить(184); СписокДопустимыхЗначений.Добавить(168); СписокДопустимыхЗначений.Добавить(45); СписокДопустимыхЗначений.Добавить(46); СписокДопустимыхЗначений.Добавить(32); СписокДопустимыхЗначений.Добавить(48); СписокДопустимыхЗначений.Добавить(49); СписокДопустимыхЗначений.Добавить(50); СписокДопустимыхЗначений.Добавить(51); СписокДопустимыхЗначений.Добавить(52); СписокДопустимыхЗначений.Добавить(53); СписокДопустимыхЗначений.Добавить(54); СписокДопустимыхЗначений.Добавить(55); СписокДопустимыхЗначений.Добавить(56); СписокДопустимыхЗначений.Добавить(57); Для Сч=1 По СтрДлина(СтрокаПараметр) Цикл Код = КодСимвола(СтрокаПараметр,Сч); Если (Код<192) И (СписокДопустимыхЗначений.НайтиПоЗначению(Код) = Неопределено) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат Истина; КонецФункции