当前位置:  开发笔记 > 编程语言 > 正文

如何比较两个包含变音字符的UTF-8字符串

如何解决《如何比较两个包含变音字符的UTF-8字符串》经验,为你挑选了1个好方法。

我想添加一个像这个小提琴的元素,但是当字符串具有UTF-8字符时,我有一个问题来比较我的字符串,因为"é" is > at all basics letters.

  1. Apples
  2. Carrots
  3. Clams
  4. Oysters
  5. Wheat
  1. Barley
  2. éggs
  3. Millet
  4. Oranges
  5. Olives
$(".ingredient").click(function() {
    var element = $(this);
    var added = false;
    var targetList = $(this).parent().siblings(".ingredientList")[0];
    $(this).fadeOut("fast", function() {
        $(".ingredient", targetList).each(function() {
            if ($(this).text() > $(element).text()) {
                $(element).insertBefore($(this)).fadeIn("fast");
                added = true;
                return false;
            }
        });
        if (!added) $(element).appendTo($(targetList)).fadeIn("fast");
    });
});

你有解决方案吗?



1> Rory McCross..:

您可以使用该localeCompare()方法对包含变音符号的文本进行排序.试试这个:

$(".ingredient").click(function() {
    var $element = $(this);
    var $targetList = $element.closest('.ingredientList').siblings().first();

    $element.fadeOut("fast", function() {
        $element.appendTo($targetList);    
        $(".ingredient", $targetList).sort(function(a, b) {
            return $(a).text().localeCompare($(b).text());
        }).appendTo($targetList);
        $element.fadeIn('fast');
    });
});

更新了小提琴

请注意,我修改了您的逻辑以使选择器更有效,并且还启用了排序算法.

localeCompare MDN文档


我喜欢`localeCompare()`方法.
推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有