【发布时间】:2020-05-11 21:57:40
【问题描述】:
我正在努力解决 TextField 的限制,它只能输入除以点的数字。这是我得到的:
public static void allowOnlyNumbersAndPoints(final TextField tf) {
tf.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(final ObservableValue<? extends String> ov, final String oldValue, final String newValue) {
if (!newValue.matches("\\d+(\\.\\d+)*$")) {
tf.setText(newValue.replaceAll("[^\\d]", ""));
}
}
});
}
如何也用“”替换点?
谢谢:)
【问题讨论】:
-
通常最好改用use a TextFormatter,这样就不会抑制用户的编辑能力。作为奖励,您不必假设
.是小数分隔符(因为在许多语言环境中,它不是)。例如,tf.setTextFormatter(new TextFormatter<Number>(new NumberStringConverter()));
标签: java regex validation