var reA = /[^a-zA-Z]/g;
var reN = /[^0-9]/g;
someArray.sort(function(a,b) {
if((a.attributes['data-user'].nodeValue !== null) && (b.attributes['data-user'].nodeValue !== null))
{
var smlla = a.attributes['data-user'].nodeValue.toLowerCase();
var smllb = b.attributes['data-user'].nodeValue.toLowerCase();
var aA = smlla.replace(reA, "");
var bA = smllb.replace(reA, "");
if(aA === bA) {
var aN = parseInt(a.attributes['data-user'].nodeValue.replace(reN, ""), 10);
var bN = parseInt(b.attributes['data-user'].nodeValue.replace(reN, ""), 10);
return aN === bN ? 0 : aN < bN ? 1 : -1;
} else {
return aA < bA ? 1 : -1;
}
}
else
return 0;
});