开发者

What regular expression do I need to check for some non-latin characters?

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

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

if (rlatins.test(foreignChar开发者_高级运维acters)) {
  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?


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");    
}


If you want to check the entire string use (in php)

preg_match('/^[\x{0000}-\x{007F}]*$/u',$s);


An alternative to making your own regex with code point ranges is to use the xregexp library

Some examples from the documentation:

XRegExp('^\\p{Hiragana}+$').test('ひらがな'); // -> true
XRegExp('^[\\p{Latin}\\p{Common}]+$').test('Über Café.'); // -> true
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜