正则表达式匹配多字节数字

时间:2013-08-08 19:29:55

标签: javascript regex multibyte

我需要使用正则表达式匹配日语中的多字节0123456789字符。

[0-9]在这种情况下不起作用。我怎样才能制作这个正则表达式?这是我第一次尝试匹配多字节字符串。

更新

使用以下regex

匹配4位数字符串(例如出生年份),使用UTF-8和非UTF-8成功

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

2 个答案:

答案 0 :(得分:4)

Javascript中这些多字节数字的等效于/[0-9]/的正则表达式是

/[\uff10-\uff19]/

答案 1 :(得分: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

如果使用未转义的版本,请务必使用正确的编码(UTF-8)保存.js文件。