0

我是 C++ 场景的新手,所以我想知道如何验证两个字段都输入了一些文本,这是当前代码,它只验证一个字段

void App::requestLogin(const QString &email, const QString &password) {
    if (m_active)
        return;

    //how can I do both password and email here????
    const QStringList list = email.split(QRegExp("\\s+"), QString::SkipEmptyParts);
    if (list.isEmpty()) {
        m_errorMessage = "please complete both fields";
        m_error = true;
        emit statusChanged();
        return;
    }
}
4

2 回答 2

1

这些方面的东西:

if (list.isEmpty() && password.isEmpty())

我不确定您为什么要“拆分”电子邮件。如果它只是用于登录目的的电子邮件地址,您应该能够做到email.isEmpty()而不是使用正则表达式拆分。

于 2013-09-06T23:31:34.400 回答
1

很难理解你的意思,但这是我根据你的错误信息的疯狂猜测。您甚至不需要正则表达式。即使你需要,你也应该使用 QRegularExpression 而不是慢得多的 QRegExp。

void App::requestLogin(const QString &email, const QString &password) {
    if (m_active)
        return;

    ...

    if (email.isEmpty() || password.isEmpty()) {
        m_errorMessage = "please complete both fields";
        m_error = true;
        emit statusChanged();
        return;
    }
}

此操作也比&&您在评论中写的更合乎逻辑,因为通常您需要提供电子邮件密码。基本上,如果其中任何一个满足,条件就会满足。这意味着如果任何输入字段保持为空,您将引发错误,这似乎是一种合理的行为。

于 2013-09-06T23:31:59.827 回答