1

Тема: Український валідатор в QT

Доброго здоров'я, не підскажете чи можливо в QT встановити валідатор (QRegExpValidator) на українській мові?
Наприклад:

QRegExp exp("[А-Я]{1}[а-я]{3,15}");

тут буде не "І", а "Ы", звичайно можу зробити заміну, але ж всетаки можливо є функція якась?

2

Re: Український валідатор в QT

Не думаю, що сучасні регулярки, тим більше в Qt таке підтримують. Тут можливі досить тонкі відмінності відмінності від локалями, а підтримувати всі алфавіти повністю - задоволення нижче середнього. Вже не кажу, що коли я вчився, просувалася ідея, що остання буква українського алфавіту - Ь (а ще ви апостроф не ловите, а він же всередині слів буває).
Так що доведеться вам ручками алфавіти прописувати, на жаль.

3

Re: Український валідатор в QT

Не певен, що Qt таке вміє, та це й не зовсім те, про що ви просили, але https://www.regular-expressions.info/unicode.html

Подякували: ReAl1

4

Re: Український валідатор в QT

koala написав:

Вже не кажу, що коли я вчився, просувалася ідея, що остання буква українського алфавіту - Ь

Не просувалася, а була нормою ще з ХІХ ст. (в желехівці Ь та ' розглядались як знаки й розміщувались після літер алфавіту, в пізніших системах Ь став літерою, але продовжував розміщуватись після решти літер). Ь став передпередостанньою літерою лише в 90-х — з міркувань сумісності з російською та іншими кирилицями (наприклад, коли доводиться впорядковувати за алфавітом двомовні списки книг, ця розбіжність між українським та російським алфавітом могла створювати незручності).

5

Re: Український валідатор в QT

Регулярка в Qt працює з юнікодівськими символами? Тоді має бути не [а-я] (бо це відповідає російському алфавіту без ё, а вам потрібен український), а десь так:  [а-щьюяґєії'’], увесь вираз (з урахуванням, що слова не починаються на Ь чи апостроф):

QRegExp exp("[А-ЩЮЯҐЄІЇ]{1}[а-щьюяґєії'’ʼ]{3,15}");

(Я включив усі три символи апострофів, що можуть використовуватись в українській мові, хоча на практиці здебільшого використовують перший з них).

Подякували: RostikTawer, /KIT\, ReAl, leofun01, sensei6

6

Re: Український валідатор в QT

P.Y. написав:
koala написав:

Вже не кажу, що коли я вчився, просувалася ідея, що остання буква українського алфавіту - Ь

Не просувалася, а була нормою ще з ХІХ ст. (в желехівці Ь та ' розглядались як знаки й розміщувались після літер алфавіту, в пізніших системах Ь став літерою, але продовжував розміщуватись після решти літер). Ь став передпередостанньою літерою лише в 90-х — з міркувань сумісності з російською та іншими кирилицями (наприклад, коли доводиться впорядковувати за алфавітом двомовні списки книг, ця розбіжність між українським та російським алфавітом могла створювати незручності).

Ну, вже вибачте, я тих часів не застав :) Але реально у мене в дитинстві була пара книжок, де таке стверджувалося.

7 Востаннє редагувалося P.Y. (02.03.2018 15:56:36)

Re: Український валідатор в QT

Моє дитинство припадало на 80-ті, коли ця норма ще діяла — відповідно, і шкільні підручники (що продовжували функціонувати і в 90-х), і словники, що були в нас удома, дотримувались саме такого алфавітного порядку. Наприклад, в УРЕС остання стаття — Ь (у сучасному виданні вона мала б опинитись перед статтями для слів на Ю).

Подякували: koala, /KIT\2