文章目录
- 前言
- 一、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])$"