Skip to content
Advertisement

Add st, nd, rd and th (ordinal) suffix to a number

I would like to dynamically generate a string of text based on a current day. So, for example, if it is day 1 then I would like my code to generate = “Its the <dynamic>1*<dynamic string>st</dynamic string>*</dynamic>”.

There are 12 days in total so I have done the following:

  1. I’ve set up a for loop which loops through the 12 days.

  2. In my html I have given my element a unique id with which to target it, see below:

    JavaScript
  3. Then, inside my for loop I have the following code:

    JavaScript

UPDATE

This is the entire for loop as requested:

JavaScript

Advertisement

Answer

The rules are as follows:

  • st is used with numbers ending in 1 (e.g. 1st, pronounced first)
  • nd is used with numbers ending in 2 (e.g. 92nd, pronounced ninety-second)
  • rd is used with numbers ending in 3 (e.g. 33rd, pronounced thirty-third)
  • As an exception to the above rules, all the “teen” numbers ending with 11, 12 or 13 use -th (e.g. 11th, pronounced eleventh, 112th, pronounced one hundred [and] twelfth)
  • th is used for all other numbers (e.g. 9th, pronounced ninth).

The following JavaScript code (rewritten in Jun ’14) accomplishes this:

JavaScript

Sample output for numbers between 0-115:

JavaScript
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement