美国 phone QT Creator 中的号码验证
US phone number verification in QT Creator
我很难获得适用于美国 phone 号码的验证系统。
请注意,我是一个自学的'dev',只是出于好奇尝试一些东西,我的知识非常有限
好的,如上所述,我正在尝试从 LineEdit 验证美国 phone 号码,该号码应采用以下格式 +1 000-000-0000
所以在 google 上搜索后,我找到了一个 post 帮助我设置验证,但我无法让它为我的格式工作,
{
//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}$")
但我似乎无法理解为什么它不接受我想要的格式的号码,并不断提示错误消息
这是一个正则表达式。请参阅 QRegExp class 文档。
原始正则表达式(您注释掉的那个)看起来比您保留的那个更接近。
我使用 discordd 上有人建议的网站来完成这项工作:
https://ihateregex.io/expr/phone/#
结果是我的 REGEX
("^\+?(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}$");
我很难获得适用于美国 phone 号码的验证系统。
请注意,我是一个自学的'dev',只是出于好奇尝试一些东西,我的知识非常有限
好的,如上所述,我正在尝试从 LineEdit 验证美国 phone 号码,该号码应采用以下格式 +1 000-000-0000
所以在 google 上搜索后,我找到了一个 post 帮助我设置验证,但我无法让它为我的格式工作,
{
//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}$")
但我似乎无法理解为什么它不接受我想要的格式的号码,并不断提示错误消息
这是一个正则表达式。请参阅 QRegExp class 文档。
原始正则表达式(您注释掉的那个)看起来比您保留的那个更接近。
我使用 discordd 上有人建议的网站来完成这项工作: https://ihateregex.io/expr/phone/#
结果是我的 REGEX
("^\+?(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}$");