How to sort a string with digits and letters (digits before letters) in JavaScript

1 Answer

0 votes
function customSort(input) {
    let chars = input.split('');
 
    chars.sort((a, b) => {
        if (!isNaN(a) && isNaN(b)) return -1; // Digits before letters
        if (isNaN(a) && !isNaN(b)) return 1; // Letters after digits
        return a.localeCompare(b);
    });
 
    return chars.join('');
}
 
const input = "d2c4b3a1";
 
const sortedInput = customSort(input);
 
console.log("Custom sorted string:", sortedInput);

  
  
/*
run:
  
Custom sorted string: 1234abcd
  
*/

 



answered May 27, 2025 by avibootz
...