Регулярное выражение для японских символов - PullRequest
8 голосов
/ 22 июля 2011

Я занимаюсь интернационализацией в Struts.Я хочу написать подтверждение Javascript для японских и английских пользователей.Я знаю регулярные выражения для английского, но не для японских пользователей.Можно ли написать одно регулярное выражение для обоих пользователей, которые проверяют на основе Unicode?

Пожалуйста, помогите мне.

Ответы [ 3 ]

20 голосов
/ 09 мая 2012

Эта тема может быть старой, но мне показалось, что я добавляю свои 2 цента. Вот регулярное выражение, которое может быть использовано для сопоставления всех английских буквенно-цифровых символов, японского катакана, хирагана, многобайтовых буквенно-цифровых символов [ханкаку и дзенкаку], тире

/[一-龠]+|[ぁ-ゔ]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+[々〆〤]+/u

Вы можете редактировать его в соответствии со своими потребностями, но обратите внимание на флаг "u" в конце.

Надеюсь, это поможет!

0 голосов
/ 22 июля 2011

Пока вы сохраняете свои скрипты в том же наборе символов, что и ваша страница (например, HTML и JavaScript - это UTF-8, или HTML и JavaScript - это Shift_JIS), вы сможете обрабатывать свои регулярные выражения точно так же, как вы бы с английским.

function isKansai(city) {
    var rxKansai = /(大阪|兵庫|京都|滋賀|奈良|和歌山|osaka|hyo{1,2}go|kyoto|shiga|nara|wakayama)/i;
    return rxKansai.test(city);
}
isKansai('東京'); // false
isKansai('大阪'); // true
isKansai('Tokyo'); // false
isKansai('Osaka') // true
0 голосов
/ 22 июля 2011

Если ваш текстовый редактор и язык программирования поддерживают Unicode, вы должны иметь возможность вводить японские символы в виде буквенных строк. Такие вещи, как [A-X] диапазоны, вероятно, не очень хорошо переводятся в общем.

Какой текст вы пытаетесь проверить?

На каком языке проводятся регулярные эксперименты? Perl-совместимый, POSIX или что-то еще?

...