![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Andrewshkovskii |
![]()
Сообщение
#1
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Пишу вот форму регистрации, есть следующий код :
функция проверки
Эта функция вызывается в слоте, по нажатию кнопочки OK, все данные(QString'ги FName и т.д) получаю из QLineEdit'ов. Валидатор создается так :
Проблема - при любом раскладе будет возвращать Invalid first name и далее(last name, username..) почему?Рег-экспы не правильно написал? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Andrewshkovskii |
![]()
Сообщение
#3
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Ну я брал примеры регэкспов, проще говоря готовые, просто времени нету щас разбираться в них.
Убрал я слэши..без разницы, возвращает сразу Invalid first name. Даже есть поставить шаблон на проверку имени : "[A-C]\\d{5}[W-Z]" (из примера в асисте), то A12345Z - не проходит. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
A12345Z - не проходит а каково правило, словесное?если все буквы и цифры, то так: [a-zA-Z0-9]+ П.С. если проблема в регулярном выражении, то предлагаю отдельную темку создать "Помогите написать регулярное выражение" Т.к. проблема всплывала неоднократно, но размазана по форуму, просто так не найдешь. Следовательно в одном месте всякие объяснения/подсказки были бы к стати. |
|
|
Andrewshkovskii |
![]()
Сообщение
#5
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Черт, да все равно возвращает "Invalid first name".Проверяю я эту функцию вот как :
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
ты регулярку сначала проверь (%QTDIR%\examples\tools\regexp)
|
|
|
Andrewshkovskii |
![]()
Сообщение
#7
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Эм..этот пример..Он показывает, валидна ли моя строка заданному регэкспу?
|
|
|
molchanoviv |
![]()
Сообщение
#8
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: ![]() ![]() ![]() |
проверяй правильность своих регекспов с помощью этой программы. Очень помогает.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Эм..этот пример..Он показывает, валидна ли моя строка заданному регэкспу? совершенно верно, я её в своё время модифицировал, для жирных кусков проверок тут (SVN: http://svn.assembla.com/svn/ysoft/regexp)molchanoviv, тыб ссылочку на страницу проекта дал, а то сразу загрузка. |
|
|
Andrewshkovskii |
![]()
Сообщение
#10
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Спасибо за программу, внушительна
![]() Только..всеравно не работает. Может ошибки именно в логике?вот исходники.. registerform.h
registerform.cpp
Сообщение отредактировал Andrewshkovskii - 5.4.2009, 23:34 |
|
|
molchanoviv |
![]()
Сообщение
#11
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: ![]() ![]() ![]() |
molchanoviv, тыб ссылочку на страницу проекта дал, а то сразу загрузка. Официальной страницы я не знаю, а гугл первой ссылкой по запросу regexp planner ведет на crossplatform.ru |
|
|
kwisp |
![]()
Сообщение
#12
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Andrewshkovskii,
тебя подобные строки при компиляции не смущали? Цитата regform.cpp:96:28: warning: unknown escape sequence '\w' regform.cpp:96:28: warning: unknown escape sequence '\.' regform.cpp:96:28: warning: unknown escape sequence '\w' regform.cpp:96:28: warning: unknown escape sequence '\.' regform.cpp:96:28: warning: unknown escape sequence '\w' это компилятор ругается что не знает таких символов. \n \0 \b знает а \w \. просто нету. чтобы написать обр. слэш в строке надо написать два и выражение твое будет: QString mailval ("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$"); еще вопрос какой смысл использовать new при создании рег.выражения. зачем? почему не создать его протсто QRegExp("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$"); ? Сообщение отредактировал kwisp - 6.4.2009, 7:55 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#13
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Andrewshkovskii |
![]()
Сообщение
#14
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
new - уже привычка работать с объектами через указатель...
![]() Символы как-то я не подумал..:/ Только это проблемы не решает, я исправил все регэкспы на нормальные, а результат все тот же, ошибка в логике кода, видимо.. Сообщение отредактировал Andrewshkovskii - 6.4.2009, 10:38 |
|
|
kwisp |
![]()
Сообщение
#15
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
new - уже привычка работать с объектами через указатель... помоему в случае работы с регулярными выражениями это лишнее. я переправил код на свой вкус - как писал выше корректно работает минимум первый раз до обновления поля ввода имени. если тебе это поможет вот как я написал
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 9.6.2025, 18:29 |