Qt 4.7 Проверка адреса электронной почты QRegExp - PullRequest
3 голосов
/ 22 августа 2011

У меня есть хороший шаблон регулярных выражений для проверки адресов электронной почты. Я использовал его в php, и я использовал его в C #, не сталкивался с какими-либо проблемами (пока нет). Однако у меня возникают значительные проблемы с переносом шаблона и использованием его с QRegExp.

Кто-нибудь может мне помочь?

// C# version
public bool isEmailAddress(string strEmailAddr)
{
    if (strEmailAddr.Length == 0)
        return false;

    Regex rTest = new Regex(@"\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b", RegexOptions.IgnoreCase);
    return rTest.Match(strEmailAddr).Success;
}

// #C++/Qt 4.7 version ... not working
bool isEmailAddress(QString strEmailAddr)
{
    if ( strEmailAddr.length() == 0 ) return false;

    QString strPatt = "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\b";
    QRegExp rx(strPatt);
    return rx.exactMatch(strEmailAddr);
}

Ответы [ 2 ]

7 голосов
/ 22 августа 2011

Необработанная строка C # облегчает написание, но, поскольку вы имеете дело с C ++, вам необходимо избежать обратной косой черты:

QString strPatt = "\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b";
2 голосов
/ 23 октября 2011

здесь вы можете записать свои строки с помощью этой встроенной функции:

QRegExp::escape(QSTRING_HERE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...