分隔的整數餘有使用以下正則表達式,以限制在文本框中輸入的數據: EXS:規則運算數的陣列都浮體和由逗號
- 1,2,3
- 2.2,3.1,3
如果用戶在輸入1.2,2,3後離開文本框。我必須在3點後刪除點並保存。
我開始僅限制進入的點或逗號與正則表達式「([。,] {1})」 但文本框接受一個點,而它允許進入3個逗號。
分隔的整數餘有使用以下正則表達式,以限制在文本框中輸入的數據: EXS:規則運算數的陣列都浮體和由逗號
如果用戶在輸入1.2,2,3後離開文本框。我必須在3點後刪除點並保存。
我開始僅限制進入的點或逗號與正則表達式「([。,] {1})」 但文本框接受一個點,而它允許進入3個逗號。
對於正則表達式本身遵循Wiktor的Stribiżew的意見
你知道QRegexValidator? 對於在文本框中輸入的最佳途徑數據的驗證是使用QRegexValidator
http://doc.qt.io/qt-4.8/qregexpvalidator.html#details
// regexp: optional '-' followed by between 1 and 3 digits
QRegExp rx("-?\\d{1,3}");
QValidator *validator = new QRegExpValidator(rx, this);
QLineEdit *edit = new QLineEdit(this);
edit->setValidator(validator);
使用這個對象的用戶在該領域不能進入一個非有效的數據,以便您不要必須處理的東西,當用戶離開文本框
是的,我知道。不幸的是我不能使用它。 –
所以,你想允許一個正則表達式的尾隨點?使用['^ [0-9] + [。]?[0-9] *(,[0-9] + [。]?[0-9] *)* $'](https:// regex101。 com/r/Lkhugb/1) –
還是你的意思是你只允許在字符串末尾的那個點?試試'^ [0-9] +([。] [0-9] +)?(,[0-9] +([。] [0-9] +)?)* [。]?$'然後檢查字符串「endsWith」是否包含「。」和「truncate」。 –
尾隨點不過是如果用戶忘記完成浮點值並停止點,那麼它必須被檢測到並且被忽略。而且我也不限制用戶只輸入3個這樣的值。它可以是n個值。 –