Here you go, another JavaScript approach, originally posted on [SO][1]:

    function getRepString (rep) {

      rep = rep+''; // coerce to string

      if (rep < 1000) { // return the same number
        return rep; 
      }

      if (rep < 10000) { // place a comma between
      
        return rep.charAt(0) + ',' + rep.substring(1);
      } 

      // divide and format
      return (rep/1000).toFixed(rep % 1000 != 0)+'k';

    }

Check the output results [here][2].


  [1]: https://stackoverflow.com/questions/3177855/how-to-format-numbers-similar-to-stack-overflow-reputation-format/3177985#3177985
  [2]: http://jsbin.com/ivebo3/2