Qt ip和特殊输入字符输入框正则表达式

来源:互联网 发布:windows msdn 编辑:程序博客网 时间:2024/06/05 03:07

正则表达式来实现ip地址,网络端口,信号通道的输入功能的,不符合规范的数据将不能输入:        

 QLineEdit的setValidator函数.

/* ip输入框正则表达式 */
// IP 前3段

 QRegExp regExp("[0-9][0-9.][0-9.][.]");ui->lineEdit_1->setValidator(new QRegExpValidator(regExp, ui->lineEdit_1));ui->lineEdit_2->setValidator(new QRegExpValidator(regExp, ui->lineEdit_2));ui->lineEdit_3->setValidator(new QRegExpValidator(regExp, ui->lineEdit_3));
// 第4段
regExp = QRegExp("[0-9][0-9][0-9]");ui->lineEdit_4->setValidator(new QRegExpValidator(regExp, ui->lineEdit_4));
// 端口输入框
regExp = QRegExp("[0-9][0-9][0-9][0-9][0-9]");ui->lineEdit_6->setValidator(new QRegExpValidator(regExp, ui->lineEdit_6));ui->lineEdit_7->setValidator(new QRegExpValidator(regExp, ui->lineEdit_7));
// 输入处理
if (arg1.toInt() > 255) {        QMessageBox::information(this, "information", "输入有误");        ui->lineEdit_1->setText(tr(""));}// 如果输入.号if ((arg1.indexOf(QString("."))) != -1) {        ui->lineEdit_1->setText(arg1.section('.', 0, 0));        focusNextPrevChild(true);}

正则表达式网络配置通用代码:

QRegExp regExpIP("((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])[\\.]){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])");  QRegExp regExpNetPort("((6553[0-5])|[655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{3}|[1-9][0-9]{2}|[1-9][0-9]|[0-9])");  QRegExp regExpChannel("[0-5]");    ui->lineEdit_locIP->setValidator(new QRegExpValidator(regExpIP,this));  ui->lineEdit_subNetMask->setValidator(new QRegExpValidator(regExpIP,this));  ui->lineEdit_GatewayIP->setValidator(new QRegExpValidator(regExpIP,this));  ui->lineEdit_serIP->setValidator(new QRegExpValidator(regExpIP,this));  ui->lineEdit_serPort->setValidator(new QRegExpValidator(regExpNetPort,this));  ui->lineEdit_rfChannel->setValidator(new QRegExpValidator(regExpChannel,this)

1 0