我很難讓美國電話號碼的驗證系統正常作業。
請注意,我是一個自學的“開發者”,只是出于好奇而嘗試一些事情,而且我的知識非常有限
好的,如上所述,我正在嘗試從 LineEdit 驗證美國電話號碼,該號碼應采用以下格式 1 000-000-0000
所以在谷歌上搜索后,我發現了一個幫助我設定驗證的帖子,但我無法讓它適用于我的格式,
{
//QRegExp nv("^\\ ?(1 |)[0-9]{3} (-|)[0-9]{3} (-|)[0-9]{3} (-|)[0-9]{4}$");
QRegExp nv("^\\ 1(\\d{10})$");
nv.setPatternSyntax(QRegExp::RegExp);
bool regMat = nv.exactMatch(num);
if(regMat == false)
{
QMessageBox *message = new QMessageBox(this);
message->setWindowModality(Qt::NonModal);
message->setText("Please insert a valid phone number");
message->setStandardButtons(QMessageBox::Ok);
message->setWindowTitle("ERROR");
message->setIcon(QMessageBox::Information);
message->exec();
ui->edtCustPhone->setFocus();
ui->edtCustPhone->selectAll();
return false;
}else{
return true;
}
};
現在我不確定這是什么語言(我猜是 JavaScript)
("^\\ ?(1 |)[0-9]{3} (-|)[0-9]{3} (-|)[0-9]{3} (-|)[0-9]{4}$")
但我似乎無法理解為什么它不接受我想要的格式的數字,并不斷提示錯誤訊息
uj5u.com熱心網友回復:
那是一個正則運算式。請參閱 QRegExp 類檔案。
原始正則運算式看起來比您保留的更接近(您注釋掉的那個)。
uj5u.com熱心網友回復:
我使用 discordd 上有人建議的網站來完成這項作業: https ://ihateregex.io/expr/phone/#
原來我的正則運算式
("^\\ ?(1 |)[0-9]{3} (-|)[0-9]{3} (-|)[0-9]{3} (-|)[0-9]{4}$")
有一對多
[0-9]{3}
迭代......而且這些地方也有錯誤的陳述:
(-|)
經過一些測驗后,我得到了這個為我作業:
QRegExp nv("^\\ ?(1 |)[0-9]{3}\\-[0-9]{3}\\-[0-9]{4}$");
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/410790.html
標籤:
