[正则表达式] 限制字符串为12位精度的小数 (使用Qt)

本文介绍了如何在Qt应用中使用QRegExpValidator类配合正则表达式,来限制QLineEdit输入为最多13位数字(包括整数和小数部分,小数部分最多12位)。正则表达式确保了输入值的格式正确,保证了数据的规范性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文所提到12位精度的小数指的是整数部分加上小数部分等于12个数字

使用 Qt 的 QRegExpValidator 类来限制字符串为12位精度的小数

#include <QLineEdit>
#include <QRegExpValidator>

// 创建一个 QLineEdit 对象
QLineEdit *lineEdit = new QLineEdit(this);

// 创建一个正则表达式
QRegExp regex("^[+-]?(?=.{1,13}$)\\d{0,12}(\\.\\d{0,12})?$");

// 创建一个 QRegExpValidator 对象
QRegExpValidator *validator = new QRegExpValidator(regex, this);

// 将 validator 设置为 lineEdit 的验证器
lineEdit->setValidator(validator);

正则表达式解释:

  • ^ 匹配字符串开头
  • [+-]? 匹配可选的正负号
  • (?=.{1,13}$) 使用正则表达式的正向预查,确保字符串总长度不超过13个数字
  • \d{0,12} 匹配0到12个数字
  • (\.\d{1,12})? 匹配一个小数点和1到12个数字(可选)
  • $ 匹配字符串结尾
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值