QT正则校验

news/2025/2/15 21:45:56/

文章目录

  • 前言
  • 一、Qt正则校验
    • 1.对输入框进行校验,不允许输入其他字符
    • 2.直接校验字符串
  • 二、常用正则校验表达式


前言

项目中会经常遇到需要对字符串进行校验的情况,需要用到正则表达式(Regular Expression,通常简写为RegExp、RE等),本篇将介绍如何使用Qt正则校验字符串及常用正则校验表达式。


一、Qt正则校验

1.对输入框进行校验,不允许输入其他字符

// 正则校验ip地址:ddd.ddd.ddd.ddd
QRegExp ipExp("(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)");
ui->editIP->setValidator(new QRegExpValidator(ipExp, ui->editIP));

2.直接校验字符串

/** value 待校验值* rxStr 校验规则*/
bool RegExp(QString value, QString rxStr)
{bool result = false;if(value.isEmpty()){return false;}QRegExp rx(rxStr);QRegExpValidator v(rx, 0);int pos = 0;if (QValidator::Acceptable != v.validate(value, pos)){result = false;}else{result = true;}return result;
}// 校验000-999
bool result = RegExp("123","\\d{3}"); 

二、常用正则校验表达式

中文           "^[\u4e00-\u9fa5]{2,10}$" 
整数           "^-?\\d+$" 
浮点数         "^(-?\\d+)(\\.\\d+)?$"
负数           "^-[0-9]*[1-9][0-9]*$"
数字           "^[0-9]*$"            
正整数         "^[0-9]*[1-9][0-9]*$"
数字和英文组合  "^[A-Za-z0-9]+$"
数字加二位小数  "^[0-9]+(\\.[0-9]{2})?$"
身份证号        "^(^\\d{15}$|^\\d{18}$|^\\d{17}(\\d|X|x))$" 
IP             "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
端口号          "^([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{4}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$"  


http://www.ppmy.cn/news/1026457.html

相关文章

DC-7靶机

DC-7靶机地址 同样的,把靶机跟kali放在同一网段,(NAT模式) 主机发现 arp-scan -l端口扫描 nmap -A -T4 -p- 192.168.80.13922端口开始,80端口开启 浏览器先访问一下靶机的80端口 熟悉的Drupal站点 先爆破一下目录…

使用蓝牙外设却不小心把台式机电脑蓝牙关了

起因 今天犯了一个贼SB的错误,起因是蓝牙键盘突然就不能输入了(虽然是连接状态,但是按什么键都没有反应) 原来我的解决方法就是重启一下电脑,但是那会电脑开了贼多的软件。我就想重启也太麻烦了,既然重启…

Go语言使用cron/v3实现定时任务

一、获取cron/v3包 go get github.com/robfig/cron/v3v3.0.0安装v3版本的cron包。 二、创建cron调度器 使用cron.New()创建一个新的Cron调度器: c : cron.New()三、添加定时任务 使用AddFunc方法添加定时任务,参数是cron表达式和任务函数: c.AddFunc("* * * * *&quo…

c++二进制转化十进制代码(小数)

#include <bits/stdc.h> using namespace std; int mid; double er_shi(string a){int lena;double sum0;int p0;int q-1;int yn1;//判断是否小数 lenaa.length();//字符串长度 for(int i0;i<lena;i){if(a[i].){midi;yn0;break;} }if(yn0){for(int jmid-1;j>0;j--…

创建和使用角色(RHCE)

题目&#xff1a; 创建和使用角色 根据下列要求&#xff0c;在 /home/curtis/ansible/roles 中创建名为 apache 的角色&#xff1a; httpd 软件包已安装&#xff0c;设为在系统启动时启用并启动 防火墙已启用并正在运行&#xff0c;并使用允许访问 Web 服务器的规则 模板文件 i…

Android 使用SQLite的案例详解

1、说明 sqlite是个轻量级的数据库,可用于嵌入式。有时候做本地的web开发的时候,我会把sqlite作为内置数据库,这样便于部署,直接启动应用即可。 这里主要是将android中的使用过程记录一下。主要包含,数据如何初始化,在不同的activity中如何使用,以及增删改查的实现。 …

ad+硬件每日学习十个知识点(30)23.8.10 (SDIO端口扩展器TXS02612RTWR,模数转换器ADC121C027)

文章目录 1.cpu->SDIO端口扩展器->SD卡槽->SD卡(当然也可以反向读取)2.SDIO端口扩展器介绍3.SDIO端口扩展器TXS02612RTWR4.SD卡槽5.什么是模数转换器&#xff1f;6.I2C模数转换器ADC121C0277.模数转换方案 1.cpu->SDIO端口扩展器->SD卡槽->SD卡(当然也可以反…

CTF之逆向之阿里巴巴

题目地址&#xff1a;http://www.shiyanbar.com/ctf/13 题目预览&#xff1a; 解题过程&#xff1a; 1、下载附件发现是exe文件 2、使用PEid和Detect It Easy查壳 和 开发语言&#xff0c;发现没有加壳&#xff0c;都是用C#开发的 3、C#和Java Python属于解释型语言&#xff…