我是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;
}
}
答案 0 :(得分:1)
这些方面的东西:
if (list.isEmpty() && password.isEmpty())
我不确定你为何“拆分”电子邮件。如果它只是用于登录目的的电子邮件地址,您应该能够email.isEmpty()
而不是使用正则表达式拆分。
答案 1 :(得分: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;
}
}
此操作也比您在评论中写的&&
更符合逻辑,因为通常您需要同时提供电子邮件和密码。基本上,如果其中任何一个满足,条件将满足。这意味着如果任何输入字段保持为空,您将引发错误,这似乎是一种合理的行为。