2016-11-23 14 views
-2

で区切られた数字フロートと整数両方のアレイのための私は次のために正規表現を使用して、テキストボックスに入力されたデータを制限しなければならない: EXS:正規表現コンマ

  • 1,2,3-
  • を2.2,3.1,3

と入力した後、ユーザーがテキストボックスを外した場合。私は3の後にドットを削除して保存しなければならない。

私は正規表現のドットまたはコンマ入力する規制の開始「([し、] {1})」が3つのカンマを入力することを可能にする一方 が、テキストボックスは、1個のドットを受け付けます。正規表現そのものについては

+2

だから、あなたが正規表現と末尾のドットを許可したいテキストボックスを離れたときに何かを処理する必要はありませんか? ['^ [0-9] + [。]?[0-9] *(、[0-9] + [。]?[0-9] *)* $'](https:// regex101。 com/r/Lkhugb/1) –

+2

文字列の末尾にあるドットだけを許可するということですか? [0] +([。] [0-9] +)?、[0-9] +([。] [0-9] +)?)* [。]?$ '文字列 ''が 'ends.With'をチェックし、それを' '切り捨てる ''ことを確認してください。 –

+0

末尾のドットは何もありませんが、ユーザーが浮動小数点値を忘れてドットで停止する場合は、それを検出してigonredする必要があります。また、私はそのような値を3つだけ入力するようにユーザーを制限していません。 n個の値にすることができます。 –

答えて

2

あなたがQRegexValidatorを知っていますWiktor第Stribiżew

のアドバイスに従いますか?テキストボックスに最善の方法を入力したデータの検証のための は、ユーザーは、あなたがそう分野における非有効なデータを入力することはできません。このオブジェクトを使用して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

はい私は認識しています。残念ながら、私はそれを使用しない位置にいます。 –