views:

125

answers:

1

I am checking a field if it is Latin Characters or not.

var foreignCharacters = $("#foreign_characters").val();
var rlatins = /[\u0000-\u007f]/;

if (rlatins.test(foreignCharacters)) {
  alert("This is Latin Characters");
} else {
  alert("This is non-latin Characters");    
}

This works well, but I would like to change it so when I enter any non-latin characters, such as chinese characters, along with a space(which is within that range I am using currently) it will still say it is non-latin characters.

How can I change the regular expression I have to do that?

+1  A: 

Just test for the presence of non-ascii characters instead of testing for the presence of ascii characters:

var foreignCharacters = $("#foreign_characters").val();
var rforeign = /[^\u0000-\u007f]/;

if (rforeign.test(foreignCharacters)) {
  alert("This is non-Latin Characters");
} else {
  alert("This is Latin Characters");    
}
Alsciende
That's a good idea! Thanks! I'm getting this error when trying to use that regex in php: Compilation failed: PCRE does not support \L, \l, \N, \U, or \u at offset 2
zeckdude
Different syntax in PHP: Try `/[\x{0000}-\x{007f}]/u`
Tim Pietzcker
@Tim - Thank you very much!
zeckdude