只允许没有正则表达式的西欧名字/字符

时间:2016-03-17 17:21:14

标签: 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.length(); i++) {
            char c = eingabe.charAt(i);
            if (!(Character.isAlphabetic(c) || c == ' ' || c == '-')) {
                Toolkit.getDefaultToolkit().beep();
                return null;
            }
        }
        return tfc;
    }
}

我使用此过滤器仅过滤字符。但我只是想允许西欧的名字。使用正则表达式执行此操作非常困难,我想避免这种情况。这里的问题是,这个解决方案还允许非欧洲字符,如汉字或平假名等。有没有一种方法,我只能允许这样的西欧名字/字符?

编辑:这是我想要允许的正则表达式:^ [ - .a-zA-Z0-9'ÀÁÃüÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ\ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ] * $

0 个答案:

没有答案