这是我的过滤器:
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;
}
}
我使用此过滤器仅过滤字符。但我只是想允许西欧的名字。使用正则表达式执行此操作非常困难,我想避免这种情况。这里的问题是,这个解决方案还允许非欧洲字符,如汉字或平假名等。有没有一种方法,我只能允许这样的西欧名字/字符?
编辑:这是我想要允许的正则表达式:^ [ - .a-zA-Z0-9'ÀÁÃüÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ\ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ] * $