Какое регулярное выражение мне нужно проверить на наличие некоторых нелатинских символов? - PullRequest
8 голосов
/ 31 марта 2010

Я проверяю поле, если это латинские символы или нет.

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

Это хорошо работает, но я бы хотел изменить его, чтобы при вводе любых нелатинских символов, таких как китайские символы, вместе с пробелом (который находится в пределах того диапазона, который я сейчас использую), он все равно будет нелатинские символы.

Как я могу изменить регулярное выражение, которое я должен сделать?

Ответы [ 2 ]

10 голосов
/ 31 марта 2010

Просто проверьте наличие символов, отличных от ascii, вместо проверки на наличие символов ascii:

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");    
}
4 голосов
/ 29 ноября 2012

Если вы хотите проверить всю строку, используйте (в php)

preg_match('/^[\x{0000}-\x{007F}]*$/u',$s);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...