Fabio B.
Fabio B.

Reputation: 9400

Detecting non european characters

I need to prevent my users from entering non-european characters in a text box.

For example, here's how I disallow Cyrillic:

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

But I also need to exclude Arabic, Japanese, and so on.

I just want to allow:

Is there a way to do that with ranges?

I tried /[\u0400-\u04FF]/i but it just allows ASCII English (not Italian for example).

Upvotes: 4

Views: 913

Answers (2)

Fabrizio Calderan
Fabrizio Calderan

Reputation: 123377

Just allow unicode symbols in some given ranges, e.g.

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

Example fiddle: https://jsfiddle.net/4y6e6bj5/3/


This regular expression allows basic latin / latin extended A (diacritics and accented letters). It excludes any other alphabet/symbol.

If you need to allow other specific unicode symbols, look at the unicode table and insert as many ranges as you need into the regular expression

Upvotes: 6

Docteur
Docteur

Reputation: 1275

Use a negative set :

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

Upvotes: 0

Related Questions