2013-09-06 2 views
0

내가 여기에 하나 개의 필드를 검증되어 현재 코드의 두 필드는 텍스트 입력이 확인 거라고 궁금 해요 그래서 나는 C++ 장면에 새로운 종류의이야확인이 경우 consts 비어 있습니다

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

정확히 무엇을 달성하고 싶습니까? "둘 다 비어있는 경우"또는 "둘 중 하나가 비어있는 경우"? –

+0

둘 다 비어 있으면 – Curtis

답변

1

당신이 의미하는 것을 이해하기는 어렵지만, 이것은 오류 메시지를 기반으로하는 내 추측입니다. 당신은 정규식이 필요하지 않습니다. 필요하다면 훨씬 느린 QRegExp보다는 QRegularExpression을 사용해야합니다. 당신이 당신의 의견에 쓴 일반적으로 모두 이메일을 암호를 제공해야하기 때문에

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; 
    } 
} 

이 작업

또한 &&보다 더 논리적이다. 기본적으로 조건 중 하나가 충족되면 조건을 충족합니다. 즉, 입력 필드 중 하나라도 비어 있으면 오류가 발생하여 합리적인 동작을하는 것입니다.

+0

그런 설명을 해주셔서 정말 고마워요.이게 많은 도움이되었고 제 문제를 고쳤습니다. 감사합니다 !!! – Curtis

+0

@Curtis : 오신 것을 환영합니다. :-) – lpapp

1

뭔가 : 당신은 "분할"이메일 이유

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

는 잘 모르겠어요. 로그인 목적으로 사용되는 전자 메일 주소 인 경우 regexp 분할을 사용하는 대신 email.isEmpty()을 수행 할 수 있어야합니다.

+0

+1로 문제의 세부 사항을 설명하십시오! – Curtis