2013-08-08 4 views
4

Мне нужно сопоставить многобайтныесимволов из японского, используя регулярное выражение.Regex match multibyte numbers

[0-9] не работает в этом случае. Как я могу получить это регулярное выражение? Это мой первый набег на сопоставление многобайтовых строк.

UPDATE

Matching 4 цифры строки, например, год рождения в, был успешным, как UTF-8 и не UTF-8 с использованием следующих regex

^([0-9]{4}||[\uFF10-\uFF19]{4})$

+0

is unicode? –

+2

Если это юникод, см. [Эту ссылку] (http://stackoverflow.com/questions/280712/javascript-unicode) – gr3co

ответ

4

регулярное выражение, эквивалентное /[0-9]/ для этих номеров многобайтного Javascript является

/[\uff10-\uff19]/ 
3
var str = '0123456789'; 
console.log(
    str.match(new RegExp('[0-9]', 'g')), 
    str.match(/[\uff10-\uff19]/g) 
); 
//returns ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] both ways 

Обязательно сохраните файл .js с правильной кодировкой (UTF-8), если используется версия без сохранения.