目前使用的手机号码段如下:
手机号码 13[0-9],14[5|7|9],15[0-3],15[5-9],17[0|1|3|5|6|8],18[0-9]
移动:134[0-8],13[5-9],147,15[0-2],15[7-9],178,18[2-4],18[7-8]
联通:13[0-2],145,15[5-6],17[5-6],18[5-6]
电信:133,1349,149,153,173,177,180,181,189
匹配正则:^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$
bool IsValidPhoneNumber(const QString & phoneNum)
QRegExp regx("^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$");
QRegExpValidator regs(regx, 0);
QString pNum = phoneNum;
int pos = 0;
QValidator::State res = regs.validate(pNum, pos);
if (QValidator::Acceptable == res) {
return true;
else {
return false;
正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。
正则表达式可以用来:
(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。...
考虑一下我们经常遇到的问题,比如gemfield想从青岛之光读书(www.civilnet.cn/book)中找一个关键的电话号码,通常第一步就是将书中所有的电话号码查找出来放在手边。那么怎么拟定查询条件呢?电话的格式有如下几种:01088888888010 88888888010-88888888888888880532-888888880534-888888888888888beijingqi
QRegExp regxName("^[0-9a-zA-Z_]+$");
QValidator *validatorName = new QRegExpValidator(regxName);
ui->lineEdit->setValidator(validatorName); //ui为lineEdit的控件
正则表达式提取字符串中的数字...
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\d+$" //整数
"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9...
一、使用正则办法
from PyQt5.QtGui import QRegExpValidator
from PyQt5.QtCore import QRegExp
# 只能输入a~z,A~Z,0~9 字符16位内,作用做用户账号
self.QLineEdit.setValidator(QRegExpValidator(QRegExp("[a-zA-Z0-9]{16}"),self))
# 只能输入非中文,但能输入中文特殊字符,16位内,可作密码
self.QLineEdit.setValidator(QR
QString str = QString::fromLocal8Bit("adsfasdf18012341234asdf13063083333asdfasf");
QRegExp rx("1\\d{10}"); //
int pos = 0;
while ((pos = rx.indexIn(str, pos)) != -1)
qDebug()<<rx.cap(0);