QRegExpValidator(正则验证器)

QRegExpValidator

QRegExpValidator 使用正则表达式 (regexp) 来确定输入字符串是可接受、中间还是无效的。正则表达式可以在构建 QRegExpValidator 时提供,也可以在以后提供。

构造函数:

 

 常用的函数:

setRegExp()设置正则表达式
regExp()返回正则表达式
    QRegExp reg("^[1-9]$|^[1-9][0-9]$|^100$");//匹配0-100
    QRegExpValidator va;
    va.setRegExp(reg);//设置正则表达式

QRegExpValidator在QLineEdit中的使用

    QRegExp reg("[\\d\\w]{8,12}");//输入8-12位数字和字符
    QValidator *va=new QRegExpValidator(reg,this);//设置正则表达式
    QLineEdit *edit=new QLineEdit(this);
    edit->setPlaceholderText("输入8-12位数字和字符");//设置输入提示
    edit->setValidator(va);//设置正则验证器

 

QRegExpValidator在登录页面的使用

在ui界面中先设置一个登录页面

添加两个Label   lineEdit    pushbutton 控件

 构造函数设置控件参数:

 

    ui->lineEdit->setPlaceholderText("请输入账号");
    ui->lineEdit_2->setPlaceholderText("请输入密码");
    connect(ui->pushButton_2,&QPushButton::clicked,this,&Widget::close);//退出功能的实现
    ui->pushButton->setEnabled(false);//设置登录按键不可点击;

添加正则表达式: 

添加两个槽函数和两个判断值:

    bool number=false;//账号
    bool password=false;//密码
    void zhanghao();//账号的槽函数
    void mima();//密码的槽函数

构造函数添加验证器

    QRegExp exp1("[1-9][0-9]{9}");//账号为10位数,且第一个数不能为0
    ui->lineEdit->setValidator(new QRegExpValidator(exp1,this));//账号的lineEdit添加验证器
    QRegExp exp2("[\\d\\w]{8,12}");//秘密为8-12位,只能为数字和字母
    ui->lineEdit_2->setValidator(new QRegExpValidator(exp2,this));//账号的lineEdit添加验证器
    connect(ui->lineEdit,&QLineEdit::textChanged,this,&Widget::zhanghao);//如果账号的内容改变
    connect(ui->lineEdit_2,&QLineEdit::textChanged,this,&Widget::mima);//如果密码的内容改变

槽函数的实现:

QLineEdit::hasAcceptableInput()验证内容是否合规,合规为true

void Widget::zhanghao()//账号的槽函数
{
    number=ui->lineEdit->hasAcceptableInput();
    if(number&&password)
    {
        ui->pushButton->setEnabled(true);//如果两个输入都符合规则,那么登录按键可以使用
    }
    else
    {
        ui->pushButton->setEnabled(false);//不合规的话,不可点击
    }
}
void Widget::mima()//密码的槽函数
{
    password=ui->lineEdit_2->hasAcceptableInput();
    if(number&&password)
    {
        ui->pushButton->setEnabled(true);//如果两个输入都符合规则,那么登录按键可以使用
    }
    else
    {
        ui->pushButton->setEnabled(false);//不合规的话,不可点击
    }
}

 效果:账号输入10个数字,密码为8个数字 符合规则,可以点击

 账号输入10个数字,密码为7个数字 不符合规则,不可以点击

  账号输入9个数字,密码为8个数字 不符合规则,不可以点击

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值