【发布时间】:2017-11-24 11:42:03
【问题描述】:
在网页中,可以设置密码字段来禁用微软输入法,以防止用户输入其他语言字符。例如中文或日文字符不能在该字段中输入。
但在 javafx UI 中,我很容易将汉字放入密码字段。当我在密码字段中输入字符时,谁知道如何禁用 Microsoft IME?我只想在密码字段中输入数字、符号和英文字符。
【问题讨论】:
-
使用包含非拉丁字符的密码可以提高安全性。
在网页中,可以设置密码字段来禁用微软输入法,以防止用户输入其他语言字符。例如中文或日文字符不能在该字段中输入。
但在 javafx UI 中,我很容易将汉字放入密码字段。当我在密码字段中输入字符时,谁知道如何禁用 Microsoft IME?我只想在密码字段中输入数字、符号和英文字符。
【问题讨论】:
如果你真的想限制可用于密码的字符范围,你可以测试一下:
Pattern pattern = Pattern.compile("[a-zA-Z0-9\\-\\+]*");
PasswordField passwordField = new PasswordField();
passwordField.setTextFormatter(new TextFormatter<String>(change -> {
if(pattern.matcher(change.getText()).matches()) {
return change;
}
return null;
}));
【讨论】: