最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

QT輸入框輸入限制整理(正則表達式限制)

 更新時間:2024年04月28日 11:08:31   作者:戀戀西風  
我們有時需要限制文本框輸入內(nèi)容的類型,下面這篇文章主要給大家介紹了關于QT輸入框輸入限制的相關資料,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下

在使用 輸入數(shù)值時,經(jīng)常遇到限制其范圍的需要,比如角太陽高度角范圍為[-90,90],經(jīng)度值范圍[-180,180],方位角范圍[0,360]。Qt提供了QIntValidator和QDoubleValidator可以限定數(shù)值輸入范圍,如使用QIntValidator限制整數(shù)的數(shù)值范圍:

1.只允許輸入字母和漢字:

QRegExp regExp;
   regExp.setPattern("[a-zA-Z0-9_\u4e00-\u9fa5\\w]+$");
   QValidator * editName = new QRegExpValidator(regExp,ui->lineEdit);
   ui->lineEdit->setValidator(editName);
   ui->lineEdit->setMaxLength(10);
 

2.正則表達式限制 只允許輸入 浮點數(shù)

QRegExp rx("^(-?[0]|-?[1-9][0-9]{0,5})(?:\\.\\d{1,4})?$|(^\\t?$)");

3.使用正則表達式限制只能輸入數(shù)字 

QRegExp rx("[0-9\.]+$"); 
QRegExpValidator *validator = new QRegExpValidator(rx, this); 
ui->lineEdit->setValidator(validator);

4.使用正則表達式限制只能輸入IP地址 

QRegExp rx = QRegExp("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){4}"); 
QRegExpValidator *validator = new QRegExpValidator(rx, this); ui->lineEdit->setValidator(validator); 
ui->lineEdit->setInputMask("000.000.000.000");

5.  限制 輸入 值范圍,此類直接限制不接收數(shù)字以外的輸入,setRange設置接收范圍

QDoubleValidator * pDouVld = new QDoubleValidator(this);
    pDouVld->setRange(0,1000000000000000000);
    ui->lePort->setValidator(pDouVld);

6.只要字符數(shù)字

QRegExpValidator *validator2 = new QRegExpValidator(QRegExp("[A-Za-z0-9]*"), this);
    ui->leId->setValidator(validator2);

7.整理常用 正則表達式

^(-?[0]|-?[1-9][0-9]{0,5})(?:\.\d{1,4})?$|(^\t?$)
 
(^-?180$)|(^-?1[0-7]\d$)|(^-?[1-9]\d$)|(^-?[1-9]$)|^0$

^-?(180|1?[0-7]?\d(\.\d+)?)$
 
^-?(180|1?[0-7]?\d(\.\d{1,4})?)$

^-?(90|[1-8]?\d(\.\d{1,4})?)$
 
1.  式子中開頭的^和結尾的$限定字符串的開始和結尾;
2.  "-?" 表示一個或0個負號,這里面的問號表示其前面的字符重復0次或1次;
3.  管道符“|”表示平行分組,比如后三個,表示180或其它形式;
4.  [1-9] 表示限定數(shù)字范圍為1到9,其余類似,如果是有限幾個值,還可以用枚舉的方式,比如限定-255到255時,第一個數(shù)字2的限定,應該表達為[1,2],這表示這個位置只允許是1或者2;
5.  "\d"是一個轉義字符,表示匹配一位數(shù)字;
6.  “\.” 表示匹配小數(shù)點;
7.  "\d+",這里面的+表示其前面的\d重復一次或多次;
8.  "\d{1,4}",里面的{1,4}表示重復1到4次;

8. 正則表達式語法:

 :匹配任何單個字符。例如正則表達式“b.g”能匹配如下字符串:“big”、“bug”、“b g”,但是不匹配“buug”,“b..g”可以匹配“buug”。 

[ ] :匹配括號中的任何一個字符。例如正則表達式“b[aui]g”匹配bug、big和bag,但是不匹配beg、baug。可以在括號中使用連字符“-”來指定字符的區(qū)間來簡化表示,例如正則表達式[0-9]可以匹配任何數(shù)字字符,這樣正則表達式“a[0-9]c”等價于“a[0123456789]c”就可以匹配“a0c”、“a1c”、“a2c”等字符串;還可以制定多個區(qū)間,例如“[A-Za-z]”可以匹配任何大小寫字母,“[A-Za-z0-9]”可以匹配任何的大小寫字母或者數(shù)字。

( ) :將 () 之間括起來的表達式定義為“組”(group),并且將匹配這個表達式的字符保存到一個臨時區(qū)域,這個元字符在字符串提取的時候非常有用。把一些字符表示為一個整體。改變優(yōu)先級、定義提取組兩個作用。

| :將兩個匹配條件進行邏輯“或”運算。'z|food' 能匹配"z" 或 "food"。'(z|f)ood' 則匹配"zood" 或 "food"。

*:匹配0至多個在它之前的子表達式,和通配符*沒關系。例如正則表達式“zo*”能匹配 “z” 、“zo”以及 “zoo”;因此“.*”意味著能夠匹配任意字符串。"z(b|c)*"→zb、zbc、zcb、zccc、zbbbccc。"z(ab)*"能匹配z、zab、zabab(用括號改變優(yōu)先級)。

+ :匹配前面的子表達式一次或多次,和*對比(0到多次)。例如正則表達式9+匹配9、99、999等。 “zo+”能匹配 “zo”以及 “zoo” ,不能匹配"z"。

? :匹配前面的子表達式零次或一次。例如,"do(es)?" 可以匹配 "do" 或"does" 。一般用來匹配“可選部分”。

{n} :匹配確定的 n 次。"zo{2}"→zoo。例如,“e{2}” 不能匹配“bed”中的“e”,但是能匹配“seed”中的兩個“e”。

{n,} :至少匹配n次。例如,“e{2,}”不能匹配“bed”中的“e”,但能匹配 “seeeeeeeed”中的所有“e”。

{n,m} :最少匹配 n 次且最多匹配 m 次。“e{1,3}”將匹配“seeeeeeeed”中的前三個“e”。

^(shift+6) :匹配一行的開始。例如正則表達式“^regex”能夠匹配字符串“regex我會用”的開始,但是不能匹配“我會用regex”。

^另外一種意思:非?。〞簳r不用理解)

$ :匹配行結束符。例如正則表達式“浮云$” 能夠匹配字符串“一切都是浮云”的末尾,但是不能匹配字符串“浮云呀”

\d:代表一個數(shù)字,等同于[0-9]

\D:代表非數(shù)字,等同于[^0-9]

\s:代表換行符、Tab制表符等空白字符

\S:代表非空白字符

\w:匹配字母或數(shù)字或下劃線或漢字,即能組成單詞的字符

\W:非\w ,等同于[^\w]

d:digital;s:space、w:word。大寫就是“非”

Regex.IsMatch("bbbbg","^b.*g$");

Regex.IsMatch("bg","^b.*g $ ");

Regex.IsMatch("gege","^b.*g $ ");

"^\d{3,4}\-?\d+$"表示被匹配的字符序列應該是由三至四位數(shù)字組成,由于長途區(qū)號的連字符“-”可有可無,所以這里使用“?”元字符進行說明。由于連字符“-”在正則表達式中有特殊含義(表示范圍,比如[0-9]),所以要對其進行轉義。

[]括號中的任意字符,\w字母、數(shù)字、下劃線,+一到多個。由于.在正則表達式中有特殊的含義,因此對于真正想表達“.”則需要轉移“\.”。先想正則表達式是語言無關的。

+、*的匹配默認是貪婪(greedy)的:盡可能多的匹配,直到“再貪婪一點兒”其后的匹配模式就沒法匹配為止。

在+、*后添加?就變成非貪婪模式(? 的另外一個用途):讓其后的匹配模式盡早的匹配。修改成"我是(.+?)。"

    圖片src[^>]*[^/].(?:jpg|bmp|gif)(?:\"|\')

    中文 ^([\u4e00-\u9fa5]+|[a-zA-Z0-9]+)$

    網(wǎng)址"\<a.+?href=['""](?!http\:\/\/)(?!mailto\:)(?>foundAnchor>[^'"">]+?)[^>]*?\>"

    匹配中文字符的正則表達式:[\u4e00-\u9fa5]

    匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]

    匹配空行的正則表達式:\n[\s|]*\r

    匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/

    匹配首尾空格的正則表達式:(^\s*)|(\s*$)(像vbscript那樣的trim函數(shù))

    匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

    匹配網(wǎng)址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
 

總結

到此這篇關于QT輸入框輸入限制整理的文章就介紹到這了,更多相關QT輸入框輸入限制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • OpenCV 輪廓周圍繪制矩形框和圓形框的方法

    OpenCV 輪廓周圍繪制矩形框和圓形框的方法

    這篇文章主要介紹了OpenCV 輪廓周圍繪制矩形框和圓形框,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • Qt中線程常用通信方式介紹

    Qt中線程常用通信方式介紹

    Qt中,線程通信無處不在,最核心的特性信號槽就是一種線程間通信,這篇文章主要為大家介紹了幾種常用的方式,需要的小伙伴可以參考一下
    2025-01-01
  • 解決c++?error:crosses?initialization?of?問題

    解決c++?error:crosses?initialization?of?問題

    最近在寫代碼的時候,碰到了?crosses?initialization?of?...?的問題,只因我在?switch?的某個?case?分支下定義了一個變量,于是乎便將這個問題整理一下,需要的朋友可以參考下
    2023-03-03
  • C語言實例問題探究字符串函數(shù)的應用

    C語言實例問題探究字符串函數(shù)的應用

    字符串函數(shù)(String processing function)也叫字符串處理函數(shù),指的是編程語言中用來進行字符串處理的函數(shù),如C,pascal,Visual以及LotusScript中進行字符串拷貝,計算長度,字符查找等的函數(shù)
    2022-04-04
  • Ubuntu 20.04 下安裝配置 VScode 的 C/C++ 開發(fā)環(huán)境(圖文教程)

    Ubuntu 20.04 下安裝配置 VScode 的 C/C++ 開發(fā)環(huán)境(圖文教程)

    這篇文章主要介紹了Ubuntu 20.04 下安裝配置 VScode 的 C/C++ 開發(fā)環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • C++實現(xiàn)LeetCode(154.尋找旋轉有序數(shù)組的最小值之二)

    C++實現(xiàn)LeetCode(154.尋找旋轉有序數(shù)組的最小值之二)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(154.尋找旋轉有序數(shù)組的最小值之二),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++虛函數(shù)的實現(xiàn)機制分析

    C++虛函數(shù)的實現(xiàn)機制分析

    這篇文章主要介紹了C++虛函數(shù)的實現(xiàn)機制分析,需要的朋友可以參考下
    2014-07-07
  • 基于C++實現(xiàn)信息管理系統(tǒng)

    基于C++實現(xiàn)信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了基于C++實現(xiàn)信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++ 壓縮文件及文件夾方法 使用zlib開源庫

    C++ 壓縮文件及文件夾方法 使用zlib開源庫

    下面小編就為大家分享一篇C++ 壓縮文件及文件夾方法 使用zlib開源庫,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • C語言二叉樹與堆的概念與實現(xiàn)

    C語言二叉樹與堆的概念與實現(xiàn)

    這篇文章主要給大家介紹了關于C語言二叉樹與堆的相關資料,文章詳細記錄了他們的相關概念以及如何實現(xiàn)的,通過圖文介紹的非常詳細,需要的朋友可以參考下
    2021-06-06

最新評論

吴江市| 樟树市| 永济市| 汕头市| 本溪市| 冷水江市| 岐山县| 岐山县| 冷水江市| 阜城县| 石首市| 麻江县| 万全县| 南岸区| 定襄县| 科技| 慈溪市| 三穗县| 永善县| 库伦旗| 手游| 关岭| 吉安县| 蓬溪县| 九龙县| 云安县| 奈曼旗| 新营市| 贺兰县| 德阳市| 新津县| 沙河市| 隆回县| 邯郸市| 邵武市| 甘谷县| 江油市| 安多县| 宝坻区| 乐平市| 海安县|