Javafx 仅允许不带正则表达式的西欧名称/字符
这是我的过滤器:Javafx 仅允许不带正则表达式的西欧名称/字符,javafx,filter,Javafx,Filter,这是我的过滤器: public class FilterName implements UnaryOperator<TextFormatter.Change> { @Override public TextFormatter.Change apply(TextFormatter.Change tfc) { String eingabe = tfc.getText(); for (int i = 0; i < eingabe.le
public class FilterName implements UnaryOperator<TextFormatter.Change> {
@Override
public TextFormatter.Change apply(TextFormatter.Change tfc) {
String eingabe = tfc.getText();
for (int i = 0; i < eingabe.length(); i++) {
char c = eingabe.charAt(i);
if (!(Character.isAlphabetic(c) || c == ' ' || c == '-')) {
Toolkit.getDefaultToolkit().beep();
return null;
}
}
return tfc;
}
}
公共类过滤器名称实现了一元运算符{
@凌驾
公共TextFormatter.Change应用(TextFormatter.Change tfc){
字符串eingabe=tfc.getText();
对于(int i=0;i
我使用这个过滤器只过滤字符。但我只想允许使用西欧名字。用regex做这件事真的很难,我想避免。这里的问题是,这个解决方案还允许非欧洲字符,如汉字或平假名等。有没有一种方法,我只能允许西欧名称/字符这样的
编辑:这是我想要允许的正则表达式:^[-.a-zA-Z0-9'1929'195'198'20020'2036'208;勝ÕÕÕØØØØØØØØØØÔÔÔÔØÔÔØØÔØÔØØØØØÔØÔØØ21*$