javascript - 对插件内的字符串进行排序

原文 标签 javascript html algorithm sorting

我在这里有一个为网站编写的 javascript 插件,我正在修改插件以添加一些附加功能。

该插件之前接受了一组项目作为输入,如下所示(最终创建一个小的可视化):

Tom Hank
Will Smith
Chirstopher Nolan
Keanu Reeves

在内部,该插件使用排序函数对名称进行排序,如下所示:
groups = groups.sort(function (a, b) {
            if (a.content > b.content) {
                return 1;
            }
            if (a.content < b.content) {
                return -1;
            }
            return 0;
        });

哪里a.contentb.content都是字符串,例如 "Keanu Reaves"等等。

但是,现在我更改了发送到插件的输入,而不是发送输入 strings ,我现在发送 html 作为输入。例如:
<div class="sampleDiv"><span class="">Keanu Reaves</span></div>
<div class="sampleDiv"><span class="">Christopher</span></div> etc.

其中每个项目由
var itemSrc= '<div class="sampleDiv"><span class="">' +
              'Keanu Reaves' + 
             '</span></div>';

我必须以类似的方式对插件中的项目进行排序(在该排序功能中),但是现在我正在发送 html(a.content 现在具有上述 html),我想从 SO 中获得一些关于如何在以上功能(也应保留先前的排序,以防我稍后将输入更改为仅发送字符串)。
有什么建议?

最佳答案

在您的排序功能中,首先去除 html 标签。使用结果字符串,然后执行排序。

    groups = groups.sort(function (a, b) {
        var x = a.toLowerCase().replace(/<[a-zA-Z\/][^>]*>/g,''), y = b.toLowerCase().replace(/<[a-zA-Z\/][^>]*>/g,'');
        return x < y ? -1 : x > y ? 1 : 0;
    });

我希望这有帮助。

关于javascript - 对插件内的字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15458109/

相关文章:

php - Facebook发信息

javascript - 为什么在生成器中调用函数运行得更快?

javascript - 将js时间格式从24hr更改为12hr

javascript - 克隆每个,追加到每个

java - 需要解释置换算法的差异

javascript - Javascript-鼠标跟随+照明?

javascript - Node.js回调

html - 强制元素在同一行中,无论内容如何

algorithm - 总最短路径的 BFS 修改

c++ - 什么 List[i]++;应该怎么办?