Валидация строки функцией Clarion MATCH

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Валидация строки функцией Clarion MATCH

Сообщение Developer »

\w [[:word:]] Буквенный или цифровой символ или знак подчёркивания - [a-zA-Z0-9-]
\W [^[:word:]] Любой символ, кроме буквенного или цифрового символа или знака подчёркивания - [^a-zA-Z0-9-]

- Не универсальный метод соответствия :(
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Валидация строки функцией Clarion MATCH

Сообщение Developer »

Какая правильно то оформить строку для Clarion MATH
выполняющей проверку соблюдения условия сложности пароля :?:

Пароль (Строчные и прописные латинские буквы, цифры, спецсимволы. Минимум 8 символов):
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

На Clarion MATCH не получается :(

Подскажите, пожалуйста решение :wink:
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Валидация строки функцией Clarion MATCH

Сообщение Дед Пахом »

Конструкции (?=pattern) и ей подобные в MATCH никак не реализуешь. Это моё мнение, конечно.
С уважением, ДП
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Валидация строки функцией Clarion MATCH

Сообщение Developer »

Дед Пахом писал(а): Конструкции (?=pattern) и ей подобные в MATCH никак не реализуешь. Это моё мнение, конечно.
Необходимо "огород" городить :(

Вот проверка на присутствие специальных символов
RVSpecialSymbolPresent = MATCH (CLIP(PasswordString),'[][`~ |!@#$%^&*()+}}{{;:_''",./>><<?\§№€]',Match:Regular) Работает :D

Вот только как выполнить проверку на символ "пробел" и короткий дефис '-' :?:
С Уважением, Developer
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Валидация строки функцией Clarion MATCH

Сообщение Yufil »

Пробел, скорее всего \s, а короткий дефис '\<45>'
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Валидация строки функцией Clarion MATCH

Сообщение Yufil »

А точно работает? Не стоит ли экранировать обратным слэшем служебные символы, типа \[\]\|\-\{{\}\<<\., ну и так далее?
Вот у меня что-то вроде...

Код: Выделить всё

\<!--\*tqscript\.start-->(?P<tqscript>.*?)\<!--\*tqscript\.finish-->(?as)

Код: Выделить всё

loop\s+(?P<var>[_a-zA-Z0-9][_a-zA-Z0-9]*)\s*=\s*(?P<exmin>.+?)\s+to\s+(?P<exmax>.+?)\s+by\s+(?P<exby>.+?)$
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Валидация строки функцией Clarion MATCH

Сообщение Developer »

Yufil писал(а): А точно работает? Не стоит ли экранировать обратным слэшем служебные символы, типа \[\]\|\-\{{\}\<<\., ну и так далее?
Вот у меня что-то вроде...
Юрий, спасибо за помощь!

Мой пример работает точно (неоднократно проверял, чем сейчас и занимаюсь) :wink:

А вот
Yufil писал(а): Пробел, скорее всего \s, а короткий дефис '\<45>'
\s, - не работает :( а короткий дефис '\<45> - работает, работает и вариант без \ а просто <45> :wink:

MATCH(PasswordString,'[<32>]',Match:Regular) - (пробел) работает!

Да, для Clarion MATCH своя специфика регулярных выражений - брать за образец примеры регулярных выражений с HTML5, C# или Delphi в некоторых случаях просто невозможно :(

Здесь у Clarion MATCH возможности ограничены - о чём и писал Дед Пахом
Дед Пахом писал(а): Конструкции (?=pattern) и ей подобные в MATCH никак не реализуешь. Это моё мнение, конечно.
Может у кого есть более продвинутый опыт с Clarion MATCH и он предложит вариант решения
проверки сложности (стойкости) пароля для данного регулярного выражения:

Пароль: буквы, цифры, спецсимволы. Минимум 8 символов): :wink:
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

Вопрос: как отследить первый и последующие только пробелы в поле ввода STRING - при передаче переменной - он (они) пробелы уничтожаются :wink:
С Уважением, Developer
Ответить