我知道这是一个常见的问题,但是我做了一些研究,却找不到答案。在我的javafx项目中,我有textfiled,用户只能输入double(货币值)。 程序通过代码检查输入:
sumText.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
if (!newValue.matches("\\d{0,7}([\\.]\\d{0,2})?")) {
sumText.setText(oldValue);
}
}
});
一切正常,但是现在我需要修改正则表达式,因此它也允许输入负数。我如何修改正则表达式来做到这一点?所有标准的“ regex for all doubles”都不起作用,因为它的输入时刻可以是“-”和“”。在表达式的开头添加^ [\ + \-]也无济于事。