QT控制文本框输入内容

利用正则表达式,例:

//即账号最长为10位,只能由数字组成
QRegExp regx("[0-9]{1,10}");
QValidator *validator = new QRegExpValidator(regx, ui->num );
ui->num->setValidator(validator);


//姓名栏只能为汉字,长度不超过4位
QRegExp regx2("[\u4e00-\u9fa5]{1,4}");
QValidator *validator2 = new QRegExpValidator(regx2, ui->name );
ui->name->setValidator(validator2);

再比如:

QRegExp regx("[1-9][0-9]+$");
lineEdit的第一个数是1-9的,第二个数和之后的是0-9的
例如文件名里面最好就不出现<>|/\:,所以可以如下定义
QRegExp regx("[a-zA-Z0-9\-\\\_]{25}"); 
25就是所输入的字符串个数!a-z当然就是a-z,你也可以abcdefghijklm....等等,\- 就是-

常用正则表达式:

非负整数:"^\d+$"
正整数:"^[0-9]*[1-9][0-9]*$"
非正整数(负整数 + 0):"^((-\d+)|(0+))$"
负整数:"^-[0-9]*[1-9][0-9]*$"
整数:"^-?\d+$"
非负浮点数(正浮点数 + 0):"^\d+(\.\d+)?$" 
正浮点数:"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"
非正浮点数(负浮点数 + 0):"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"
负浮点数:"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" 
浮点数:"^(-?\d+)(\.\d+)?$" 
由26个英文字母组成的字符串 "^[A-Za-z]+$" 
由26个英文字母的大写组成的字符串:"^[A-Z]+$" 
由26个英文字母的小写组成的字符串:"^[a-z]+$" 
由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"
由数字、26个英文字母或者下划线组成的字符串:"^\w+$" 
email地址:"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  
年--日:"^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$"//年:"^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$" 
电话号:"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" 
IP地址:"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"  
MAC地址的正则表达式:<p><font size="3" color="#ff9900">^([0-9A-F]{2})(-[0-9A-F]{2}){5}$  

你可能感兴趣的:(QT)