Здравствуйте.
Не могу понять, почему регулярное выражение возвращает false.
Мне нужно проверить все символы в строке на принадлежность к разрешённым диапазонам символов юникода:
Код AS3:
var str:String = "Jonny";
var reg:RegExp = /^[\u0061-\u1D7CB \u02b0-\u16f9f \u0041-\u1D7CA]+$/i;
trace(str.search(reg));
trace(reg.test(str));
for(var i = 0; i < str.length; i++){
inf(str.charAt(i), 0x02b0, 0x16f9f);
}
function inf(char:String, min:uint, max:uint):void{
var code:Number = char.charCodeAt(0);
trace(char, "0x" + code.toString(16), code >= min, code <= max);
}
Если из выражения убрать
\u02b0-\u16f9f, то оно начинает возвращать true. Почему так? Разве там не должно быть условие
or?