背景:写了一个判断IP地址合法的正则表达式,并让它应用在输入框中

代码如下

    QRegExp rx_ip("^((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)$");
class QValidator * validatorIP = new QRegExpValidator(rx_ip, this);
uiform.lineEdit->setValidator(validatorIP);
uiform.lineEdit->setInputMask("000.000.000.000;");
uiform.lineEdit->setText(str_IP);

实际输入时,发现可以输入999.999.999.999,相当于正则表达式无效,只有

uiform.lineEdit->setInputMask("000.000.000.000;");生效

通过分析,可能是正则表达式与setInputMask之间不一致的问题导致的,如正则表达式可以有四位都是1位数的情况等。

因此只能在实现进行二选一,要么用正式表达式要么用setInputMask,第三种方式就是先用setInputMask设置输入格式,然后进行连接时加一个IP有效性的判断,如下:

        //正则表达式判断
QRegExp rx_ip("^((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)$");
bool match = rx_ip.exactMatch(uiform.lineEdit->text());
if (!match)
{
QMessageBox:: critical(NULL, QStringLiteral("错误"), QStringLiteral("请输入正确的IP地址及端口号"),QMessageBox:: Yes , QMessageBox:: Yes) ;
}

QT 正则表达式无效的更多相关文章

  1. QT正则表达式---针对IP地址

    判断合法IP的QT正则表达式: bool IsIPaddress(QString ip) { QRegExp rx2("(//d+)(//.)(//d+)(//.)(//d+)(//.)(/ ...

  2. QT正则表达式

    QT正则表达式有一个问题,当初始状态是不符合正则表达式时,能够输入任意字符,若在输入过程中符合正则表达式,马上进入字符检测状态,即只能接受符合正则表达式的字符.

  3. Qt——正则表达式

    在项目中经常会遇到对字符串进行操作的情况,我们可以直接使用QString的一些函数,但QT提供了一个更加强大的类——QRegExp,使用正则表达式来操作字符串. 先说说我最近遇到的几个问题: 1.对输 ...

  4. Qt正则表达式提取数据

    这几天在上嵌入式课程设计,需要用到Qt,这个是信号与槽的,寒假的时候也简单学习了一些,但是没有怎么深入,又回过来看了看Qt,发现Qt的ui界面配置与Android的好像,当然Qt也可以拿来开发Andr ...

  5. QT正则表达式学习(Windows目录禁止九个字符)

    exp 正则表达式30分钟入门教程 http://deerchao.net/tutorials/regex/regex.htm 元字符 .*^\d\b\s,当然还有\,还有中括号[] .是一个元字符, ...

  6. C/C++之Qt正则表达式

    引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征.比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个  ...

  7. qt 断点无效

    点击 工具 -->选项-->构建套件-->手动设置项,选择正确的编译器和调试器.

  8. Qt 正则表达式检查 IP 格式

    KillerSmath 2018年6月29日 下午10:41 @Pranit-Patil Hi there. Like @jonB says above, you should to replace\ ...

  9. UE中正则表达式

    UltraEdit(后简称UE),是我经常使用的文本编辑软件,其功能的强大,令我由衷地爱上了它.每天不用就全身不爽.从最开始的9.0到现在的 12.10a(本人只用到这个版本),UE都是系统重装后必安 ...

随机推荐

  1. 单用户模式进入centos

    修改root密码----------------单用户模式操作 个人原创博客,转载请注明,否则追究法律责任 author: headsen chen date: 2017-9-30 1,开机后,迅速按 ...

  2. 【Android】ImageMap,图片地图

    https://github.com/CFutureTeam/android-image-map package com.*.imagemap; import *.imagemap.ImageMap; ...

  3. iOS 单例用法

    单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 1.单例模式的要点: 显然单例模式的要点有三个:一是某个类只能有一个实例: ...

  4. java如何发起https请求

    1.写一个SSLClient类,继承至HttpClient import java.security.cert.CertificateException; import java.security.c ...

  5. Web界面的服务器监测工具(转载)

    企业服务器对于企业业务持续性意义重大,系统管理员需要密切关注企业服务器以确保一切正常运行.当发现问题的时候,他们需要知道问题开始出现时的状况,因此调查可以重点放在问题出现的时候,这就意味着定期记录信息 ...

  6. nginx跟tp5无法加载控制器

    二. 另外502 bad gateway错误,可能是有PHP中的php-fpm.conf里 “ listen  fastcgi_pass /tmp/php-cgi.sock ”跟nginx的conf文 ...

  7. codeforces#505--B Weakened Common Divisor

    B. Weakened Common Divisor time limit per test 1.5 seconds memory limit per test 256 megabytes input ...

  8. python设置redis过期时间

    import time import redis if __name__ == "__main__": try: conn=redis.StrictRedis(host='192. ...

  9. Nginx服务基础

    Nginx的英文官方网站是http://nginx.org,在这里可以查看Nginx的各个软件版本信息.Nginx软件有三种版本:稳定版.开发版和历史稳定版.开发版更新较快,包含最新的功能和bug的修 ...

  10. day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)

    day12 JSP指令 JSP指令概述 JSP指令的格式:<%@指令名 attr1="" attr2="" %>,一般都会把JSP指令放到JSP文件 ...