例如,chineseName.sort((function(a,b){return a.localeCompare(b)}));
JavaScript函數localeCompare適用於IE和Firefox,但不適用於Chrome。 劑量任何人都知道如何使代碼與Chrome兼容?如何在Chrome瀏覽器中對字符串進行排序時使用localeCompare?
3
A
回答
0
我剛剛搜索整個www找到答案,但唉,什麼都沒有......所以我做了我自己的代碼。這是丹麥的信件,所以它可能不值得你很多,但也許有人來尋找答案。這是我對一個問題的第一個答案,所以要溫柔...
convert function:convertfunction是將'double-a'(丹麥語)[aa]轉換爲丹麥語字母[å]。這將使以後逐字比較字符變得更容易。
danishCompareCharacter功能:該功能是實際的比較功能。它適用於丹麥alfabet結尾的特定丹麥字符'æ','ø'和'å'。
danishCompareString函數:這是自定義排序函數用作JavaScript排序函數中的參數。
function convert(stringToConvert)
{
var returnString = new String();
var tempLetter;
for (var j = 0; j < stringToConvert.length; j++)
{
if (stringToConvert.toLowerCase()[j] == 'a' && stringToConvert.toLowerCase()[j + 1] == 'a')
{
tempLetter = 'å';
j++;
} else
{
tempLetter = stringToConvert.toLowerCase()[j];
}
returnString = returnString + tempLetter;
}
return returnString;
}
function danishCompareCharacter(firstCharacter, secondCharacter) {
if ((firstCharacter == 'æ') || (firstCharacter == 'ø') || (firstCharacter == 'å')) {
if (secondCharacter == 'æ' || secondCharacter == 'ø' || secondCharacter == 'å') {
if (firstCharacter == secondCharacter) {
return 0;
}
if ((firstCharacter == 'æ') || secondCharacter == 'å')
{
return -1;
}
if ((firstCharacter == 'å') || secondCharacter == 'æ') {
return 1;
}
}
return 1;
}
if (secondCharacter == 'æ' || secondCharacter == 'ø' || secondCharacter == 'å') {
return -1;
}
if(firstCharacter==secondCharacter){
return 0;}
if(firstCharacter < secondCharacter)
{
return -1;
}
return 1;
}
function danishCompareString(a, b)
{
var result = 0;
var length = b.length;
if (a.length < b.length)
{
length = a.length;
}
for (var i = 0; i < length; i++) {
result = danishCompareCharacter(a[i], b[i]);
if (result != 0)
{
return result;
}
}
return result;
}
function SortMyArray(arr) {
//This works in ALL browsers
arr.sort(function (a, b) {
return (danishCompareString(convert(a[0]), convert(b[0])));
//And this would have worked in any browser BUT chrome...
// if (a[0].localeCompare(b[0]) == 0) { return 0; }
// if (a[0].localeCompare(b[0]) < 0) { return -1; }
// else { return 1; }
});
}
}
0
它現在在Chrome中運行得很好(5年後)。
既然你提到中國人的名字,功能整理中國名稱數組是:
chineseNames.sort(function (a, b) {
return a.localeCompare(b, 'zh-CN');
});
在ES2015這將是:
chineseNames.sort((a, b) => a.localeCompare(b, 'zh-CN'));
其他語言的標識符見http://www.i18nguy.com/unicode/language-identifiers.html。
相關問題
- 1. 如何使用javascript對字符串數字進行排序
- 2. 如何對字符串中的字符進行排序?
- 3. 如何使用nspredicate對非英文字符串進行排序?
- 4. 使用合併排序對n個字符串進行排序
- 5. 如何在Vala中對字符串進行排序?
- 6. 如何在javascript中對字符串進行排序
- 7. 如何在Ruby中對字符串進行排序?
- 8. 如何在java中對字符串數組進行排序?
- 9. 如何在GUI中對字符串數組進行排序?
- 10. 如何在MySQL中對非英文字符串進行排序?
- 11. 如何在Excel中對混合字符串進行排序?
- 12. 如何在Objective-C中對字符串進行排序?
- 13. 如何在C中對字符串進行排序#
- 14. 如何在Swift中對字符串進行排序?
- 15. 在Python中對字符串中的字符進行排序
- 16. 在webkit瀏覽器中對數組進行排序問題
- 17. 如何按字典順序對字符串進行排序?
- 18. 對字符串數組進行排序
- 19. 以mips對字符串進行排序
- 20. 對字符串數組進行排序
- 21. 如何對C中數組中的字符串進行排序?
- 22. 對字符串中的字符進行排序的C程序
- 23. 如何使用qsort在C++中對字符串數組進行排序?
- 24. 如何使用n-gram在python中對字符串列表進行排序
- 25. 如何對字母數字字符串值進行排序?
- 26. 如何使用int和字符串對自定義適配器進行排序
- 27. 使用Python對字符串中的元素進行排序
- 28. 如何使用html字符串在android中打開瀏覽器
- 29. 使用集合對一對字符串進行排序
- 30. 如何使用chrome瀏覽器在vb.net