检测非欧洲字符

Detecting non european characters

我需要阻止我的用户在文本框中输入非欧洲字符。

例如,我是这样禁止西里尔字母的:

$('.test').keyup(function(e) {
        var toTest = $(this).val();
        var rforeign = /[\u0400-\u04FF]/i;
        if (rforeign.test(toTest)) {
            alert("No cyrillic allowed");
            $(this).val('');
        } 
    });

但我还需要排除阿拉伯语、日语等。

我只想允许:

有没有办法用范围做到这一点?

我试过 /[\u0400-\u04FF]/i 但它只允许 ASCII 英语(例如不是意大利语)。

使用否定集:

[^A-Za-zàèìòùáéíóú(othercharacters..)]

只允许在某些给定范围内使用 unicode 符号,例如

/^[a-z\u00C0-\u00F6\u00F8-\u017E]+$/i

示例 fiddle:https://jsfiddle.net/4y6e6bj5/3/


此正则表达式允许基本拉丁语/拉丁语扩展 A(变音符号和重音字母)。它不包括任何其他 alphabet/symbol.

如果您需要允许其他特定的 unicode 符号,请查看 unicode table 并在正则表达式中插入所需数量的范围