利用正則表達式,例:
//即賬號最長為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}$
