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