【发布时间】:2017-03-21 23:56:05
【问题描述】:
我试图限制十进制数的文本字段,我已经找到了整数验证的解决方案here,但问题是我无法将以下代码转换为十进制数,例如 324.23、4.3 , 4, 2, 10.43。 (只允许 1 个小数点)。
vendorList_textField_remaining.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
if (!newValue.matches("\\d*")) {
vendorList_textField_remaining.setText(newValue.replaceAll("[^\\d||.]", ""));
}
}
});
我也在寻找替代解决方案。 谢谢。
【问题讨论】:
-
我想如果你想替换第二个“。”,你需要一个“看后面”
-
为什么不使用微调器?
-
场景是什么?请提供一个测试用例。另外,试试
.replaceAll("^(\\d*\\.)|\\D", "$1")。 -
@WiktorStribiżew 嗯,也许
.replaceAll("^(\\d*\\.\\d*)\\.", "$1")会做得更好......