• 11421阅读
  • 10回复

求救 IP地址的输入合法性验证?? [复制链接]

上一主题 下一主题
离线yiyishiyi
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-05
在QLineEdit中设置IP输入的色他InputMask("000.000.000.000"),怎么验证IP地址的输入合法性呢?
离线dbzhang800

只看该作者 1楼 发表于: 2009-08-05
这个主要要靠正则表达式吧
离线napier

只看该作者 2楼 发表于: 2009-08-05
Qt 支持正则表达式,查一下文档就能用了,不难的。
离线gotomall
只看该作者 3楼 发表于: 2009-08-06
QURL 里面有个函数可以判断

bool QUrl::isValid () const

Returns true if the URL is valid; otherwise returns false.

The URL is run through a conformance test. Every part of the URL must conform to the standard encoding rules of the URI standard for the URL to be reported as valid.

bool checkUrl(const QUrl &url) {
     if (!url.isValid()) {
         qDebug(QString("Invalid URL: %1").arg(url.toString()));
         return false;
     }

     return true;
}
离线wanglei2258

只看该作者 4楼 发表于: 2009-08-06
QRegExp rx_port1(“(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-4]|[01]?\\d\\d?”)  加上这句话就可以了
QT
离线shaopeng
只看该作者 5楼 发表于: 2009-08-06
给你个
QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-4]|[01]?\\d\\d?)");
QValidator *validator = new QRegExpValidator(rx, this);
ui->lineEdit->setValidator(validator);
ui->lineEdit->setInputMask("000.000.000.000;");

这个可以限制只输入数字和数字的位数,基本能用,就是不能限制输入数字大小(可以输入999.999.999.999)
,谁有帮忙顶哈,我也学习哈
离线jiwenyu

只看该作者 6楼 发表于: 2009-11-18
把 ui->lineEdit->setInputMask("000.000.000.000;"); 去掉 试一试
离线紫霞风语
只看该作者 7楼 发表于: 2009-11-21
把 ui->lineEdit->setInputMask("000.000.000.000;"); 去掉就不会又...的显示格式了 .的自己去输入,这个问题也困扰我好久了 不知道怎么解决
离线tangxunmin

只看该作者 8楼 发表于: 2009-12-06
QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-4]|[01]?\\d\\d?)");
QValidator *validator = new QRegExpValidator(rx, this);
这两句话好像根本不起作用
关键是怎么样限制输入的ip地址数字的大小  会的出来讲下哈
离线jiwenyu

只看该作者 9楼 发表于: 2009-12-07
ui->lineEdit->setInputMask("000.000.000.000;")有这句话的话是有“...”存在的,但是正则表达式好像就不起作用了,但是可以在提取控件的输入时,加上正则表达式,这样就算可以输入999.999.999.999,也会提示你输入的IP不合法。
离线tangxunmin

只看该作者 10楼 发表于: 2009-12-07
9楼说的蛮有道理的  不知道有没有直接显示输入大小的  看到文档上说可以通过InputMask 和Regexp来实现的 就是不知道怎么实现
快速回复
限100 字节
 
上一个 下一个