Qt 正则表达式检测密码格式

关键词:Qt 正则表达式 QRegExp QMessageBox

1、建立Qt Application工程,设计UI[一个输入框,一个按钮];

2、Widget.h文件

#ifndefWIDGET_H

 #define WIDGET_H
 
 #include <QWidget> 
 #include <QRegExp> 
 #include <QMessageBox> 
 
 namespace Ui { 
    class Widget; 
 } 
 
 class Widget : public QWidget 
 { 
   Q_OBJECT 
 
  public: 
   explicit Widget(QWidget *parent = 0); 
   ~Widget(); 
 
 private: 
    Ui::Widget *ui; 
    QRegExp rx; 
    QMessageBox msgBox; 
 private: 
    void init(); //初始化函数 
 
 private slots: 
    void checkPwd(); 
}; 
 
 #endif // WIDGET_H 
 

3、Widget.cpp

#include "widget.h"

#include "ui_widget.h"

 
  Widget::Widget(QWidget *parent) : 
   QWidget(parent), 
  ui(new Ui::Widget) 
 { 
     ui->setupUi(this); 
     this->init(); 
 } 
 
 Widget::~Widget() 
 { 
     delete ui; 
 } 
 
  void Widget::init() 
 { 
     //建立信号和响应函数 
    connect(ui->pushButton,SIGNAL(clicked()),SLOT(checkPwd())); 
 
    rx.setPatternSyntax(QRegExp::RegExp); 
    //对大小写字母敏感,即区分大小写 
    rx.setCaseSensitivity(Qt::CaseSensitive); 
    //匹配格式为所有大小写字母和数字组成的字符串,位数不限 
    rx.setPattern(QString("^[A-Za-z0-9]+$")); 
 } 
 
 void Widget::checkPwd() 
 { 
    QString pwd = ui->lineEdit->text(); 
    if(pwd.isEmpty())  //检测密码输入框是不是为空 
    { 
     ui->label2->setText("Password cant be empty!");  
     ui->label2->setStyleSheet("color: rgb(255, 78, 25);");; 
    } 
    else 
   { 
     ui->label2->setText(""); 
     if(rx.exactMatch(pwd)) 
     { 
      msgBox.setText("The password format is Right"); 
      msgBox.exec(); 
     } 
     else 
      { 
        msgBox.setText("Sorry,The password format is wrong!!\n 
                  \nPlease reenter your password."); 
         msgBox.exec(); 
      } 
   } 
 
 } 
4、main.cpp不用修改 
5、运行结果如下: 
  

Qt<wbr>正则表达式检测密码格式

 当输入特殊字符时会提示错误 

Qt<wbr>正则表达式检测密码格式

//------------------------------ THE END ----------------------------- 

相关文章

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字...
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。下面整理一些常用的正则...
0. 注: 不同语言中的正则表达式实现都会有一些不同。下文中的代码示例除特别说明的外,都是使用JS中的...
 正则表达式是从信息中搜索特定的模式的一把瑞士军刀。它们是一个巨大的工具库,其中的一些功能经常...
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数...
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n...