我想在Qt中实现QlineEdit,它将具有输入掩码“ 00/00/0000”(mm / dd / yyyy)和有效的正则表达式,以检查用户是否输入了有效日期。 以下是我的代码,但是它不起作用。有人可以帮我吗?
QString str1 = "(0[1-9]|1[012])";
QString str2 = "(0[1-9]|[12][0-9]3[01])";
QString str3 = "(19|20)[0-9][0-9]";
QRegExp ipRegex ("^" + str1
+ "\\/" + str2
+ "\\/" + str3
+ "$");
QRegExpValidator *ipValidator = new QRegExpValidator(ipRegex, this);
ui->lineEdit->setValidator(ipValidator);
ui->lineEdit->setInputMask("00/00/0000");
// Avoid having to move cursor before typing
ui->lineEdit->setCursorPosition(0);
答案 0 :(得分:0)
这对我有用。
QRegExp ipRegex ("(0[1-9]|[12][0-9]|3[01]{1,2})/(0[1-9]|[12]{1,2})/(19[0-9][0-9]|20[0-9][0-9])");
答案 1 :(得分:0)
我建议您尝试一下code
:
// Set date validator for date lineedit
QRegExp R_date("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|[1][0-2])/(19[0-9][0-9]|20[0-9][0-9])");
QRegExpValidator *valida = new QRegExpValidator(R_date, this);
ui->lineEdit->setValidator(valida);
// Set place holder for date lineedit
ui->lineEdit->setPlaceholderText("Example : 21/05/2019");
会是这样的: