String.localeCompare()
String.localeCompare() - повертає число яке вказує де повинен знаходитися рядок при сортуванні: до, після чи на своєму місці.
Новий параметр locales і options дозволяє визначити мову, порядок сортування. Старі браузери ігнорують ці два параметри.
Синтаксис:
str.localeCompare( compareString[, locales [,options ]])
Параметри:
compareString - рядок (символ) з яким потрібно порівняти.
locales - не обов'язковий параметр. Рядок з мовною міткою BCB 47 або масив таких рядків.
Дозволені наступні ключі розширення Unicode:
- co варіанти сортування для конкретних локалей. Можливі значення включають в себе: "big5han", "dict", "direct", "ducet", "gb2312", "phonebk", "phonetic", "pinyin", "reformed", "searchjl", "stroke", "trad" і "unihan". Значення "standard" і "search" ігноруються; вони замінюються властивістю usage аргументу options (дивіться нижче).
- kn визначає, чи використовувати числове порівняння, тобто, щоб виконувалася умова "1" < "2" < "10". Можливими значеннями є "true" і "false". Ця опція може бути встановлена через властивість аргументу options, або через ключ розширення Unicode; якщо надані обидва значення, властивість аргументу options має пріоритет.
- kf визначає, букви якого регістру повинні бути першими — верхнього чи нижнього. Можливе значення "upper" , "lower" и
"false".
options - необов'язковий параметр. Об'єкт з деякими або всіма з наступних властивостей:
- localeMatcher використовуваний алгоритм зіставлення локалей. Можливими значеннями є "lookup" і "best fit"; значенням за замовчуванням є "best fit". Інформацію по цій опції дивіться на сторінці, присвяченій об'єкту Intl. usage Визначає, чи порівняння для сортування або для пошуку співпадаючих рядків. Можливими значеннями є "sort" і "search"; значенням за замовчуванням є "sort".
- usage визначає, чи порівняння для сортування або для пошуку співпадаючих рядків. Можливими значеннями є "sort" і "search"; значенням за замовчуванням є "sort".
- sensitivity визначає, які відмінності в рядках повинні призводити до не нульового результату. Можливими значеннями є:
- "Base": вважаються різними за виключенням окремих виразів, що відрізняються базовими буквами. Приклади: a ≠ b, a = á, a = A.
- "accent": вважаються різними за виключенням окремих виразів, що відрізняються базовими літерами або акцентами і іншими умляутами. Приклади: a ≠ b, a ≠ á, a = A.
- "Case": вважаються різними за виключенням окремих виразів, що відрізняються базовими літерами або регістром літер. Приклади: a ≠ b, a = á, a ≠ A.
- "variant": вважаються різними рядки, що відрізняються базовими буквами, акцентами й іншими умляутами або регістром літер. Також до уваги можуть прийматися і інші відмінності. Приклади: a ≠ b, a ≠ á, a ≠ A.
- По замовчувані являється параметр "variant" при використанні властивості usage, рівного "sort", і залежить від локалі при використанні властивості usage, рівного "search".
- ignorePunctuation визначає, чи повинна ігноруватися пунктуація. Можливими значеннями є true і false; значенням за замовчуванням є false.
- numeric визначає, чи використовувати числове порівняння, тобто, щоб виконувалася умова "1" < "2" < "10". Можливими значеннями є true і false; значенням за замовчуванням є false. Ця опція може бути встановлена через властивість аргументу options, або через ключ розширення Unicode; якщо надані обидва значення, властивість аргументу options має пріоритет. Реалізації не зобов'язані підтримувати цю властивість.
- caseFirst визначає, літери якого регістра повинні йти першими - верхнього або нижнього. Можливими значеннями є "upper", "lower" і "false" (використовується значення за замовчуванням з локалі); значенням за замовчуванням є "false". Ця опція може бути встановлена через властивість аргументу options, або через ключ розширення Unicode; якщо надані обидва значення, властивість аргументу options має пріоритет. Реалізації не зобов'язані підтримувати цю властивість.
Опис:
localeCompare() метод об'єкту String який повертає число, яке вказує повиний даний рядок знаходиться до, після або в тому ж самому місці, що й рядок, передана через параметр, при сортуванні цих рядків. Якщо даний рядок передує рядку compareString, повертає негативне число, якщо вона слід за рядком compareString, повертає позитивне значення і повертає 0, якщо рядки знаходяться на одному рівні.
Приклад:
var s="а";
x=s.localeCompare("б");
alert(x); //-1
var s="п";
x=s.localeCompare("о");
alert(x); //1
var s="в";
x=s.localeCompare("в");
alert(x); //0
var x='ä'.localeCompare('a' , 'de');
alert(x); //1