Here you go, another JavaScript approach, originally posted on SO:
function getRepString (rep) {
rep = rep+''; // coerce to string
if (rep < 1000) {
return rep; // return the same number
} else if (rep < 10000) { // place a comma between
return rep.charAt(0) + ',' + rep.substring(1);
} else { // divide and format
return (rep/1000).toFixed(rep % 1000 != 0)+'k';
}
}
Check the output results here.