Javascript排序字符串numeric-alpha,结尾为零

时间:2011-05-11 23:35:34

标签: javascript jquery sorting

我对数学很糟糕,但我需要能够在数字-α顺序中用JavaScript(或jQuery)对字符串进行排序,最后用零填充。

所以要做到这一点,我知道我可以使用myStr.split('')将字符串转换为数组,然后使用自定义排序函数调用sort(),所以这是我到目前为止所拥有的:

function mysort(a, b) {
    // not sure what to put here.
    // order should be: 123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0
}

function sortMyString(str) {  
    str.split('');  
    return str.sort(mysort);  
}

我真的很感激这方面的帮助。

谢谢。

3 个答案:

答案 0 :(得分:0)

如果您要拆分和比较单个字符,可以使用charCodeAt功能。

a.charCodeAt(0)

b.charCodeAt(0)

获取unicode字符值。你会想要1-9,A-Z,a-z,0以及你没有计划的任何事情。

在您的排序功能中,要以适当的顺序获取项目:如果a == b,则返回0;如果是>则返回1 b,和-1如果<湾如果您需要帮助处理排序功能,请告诉我,这是我现在有时间为您提供指导。

答案 1 :(得分:0)

您可以使用sort函数,然后使用一些自定义代码处理零。这是一个参考:

http://www.w3schools.com/jsref/jsref_sort.asp

答案 2 :(得分:0)

这将导致字符串与上面相同,随意混合字符串,添加更多等等,它应该按照你想要的顺序出现。

http://jsfiddle.net/dJMHK/

var str = '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0';

str = str.split('');

str = str.sort(function (a,b) {
    if (a === '0' || b === '0')
        return (b === a) ?  0 : (a < b) ? 1 : -1;

    return (a < b) ? -1 : (a === b) ? 0 : 1;
});

document.write(str);