Regexp表示浮点数和整数数字,用逗号分隔

时间:2016-11-23 12:08:57

标签: regex qt qregexp

我必须使用正则表达式限制在文本框中输入的数据,如下所示: 例如:

  • 1,2,3
  • 2.2,3.1,3

如果用户在输入1.2,2,3后离开文本框。我必须在3之后删除点并保存。

我开始限制只使用正则表达式输入点或逗号"([。,] {1})" 但是文本框接受一个点,而它允许输入3个逗号。

1 个答案:

答案 0 :(得分:2)

对于正则表达式本身,请遵循WiktorStribiż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);

使用此对象时,用户无法在字段中输入无效数据,因此当用户离开文本框时必须处理某些内容< / p>