JSFiddle - React, Tailwind, and code Playground
by David Thomas
HTML
<table>
<tr>
<td class="ordinal">No numbers here</td>
<td class="ordinal">11-11232235313</td>
<td class="ordinal">12</td>
<td>Not a number at all</td>
<td class="ordinal">Some text with a number, in this case: 13</td>
<td class="ordinal">The 6 cell</td>
</tr>
</table>
JavaScript
Number.prototype.ordinate = function(){
var num = this,
numStr = num.toString(),
last = numStr.slice(-1),
len = numStr.length,
ord = '';
switch (last) {
case '1':
ord = numStr.slice(-2) === '11' ? 'th' : 'st';
break;
case '2':
ord = numStr.slice(-2) === '12' ? 'th' : 'nd';
break;
case '3':
ord = numStr.slice(-2) === '13' ? 'th' : 'rd';
break;
default:
ord = 'th';
break;
}
return num.toString() + ord;
};
$(".ordinal").text(function (i,t) {
return t.replace(/\b(\d+)\b/g, function(a){
return parseInt(a, 10).ordinate();
});
});