我需要输入连续的整数和用逗号分隔的实数,像这样:2,12.4,3
我禁止通过以下表达式依次输入两个逗号、两个点和所有其他字符(数字除外):(?!.*[\\.,]{2,})[\\d,\\. ]*
但是有了它我可以输入:2,12.4.3
即输入一个点和一个数字后,可以再次输入一个点,并且必须只有一个数字或逗号。
我需要保留前面表达式的所有条件,并拒绝输入点,如果在这个点之前,通过数字(\d+),有一个点。
@FXML
private TextField tf;
@Override
public void initialize(URL url, ResourceBundle rb) {
tf.textProperty().addListener((ObservableValue<? extends String> observable, String oldValue, String newValue) -> {
if (!newValue.matches("(?!.*[\\.,]{2,})[\\d,\\.]*")) {
((StringProperty) observable).setValue(oldValue);
}
});
}
最佳答案
关于java - 用于在输入点和数字 JavaFX 后禁止输入点的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44746807/