Add an ordinal suffix to a number

Append st, nd, rd or th to a positive integer.

JavaScript Version 1.0.0 · MIT · .md

add-an-ordinal-suffix-to-a-number.js
function addOrdinal(n) { return `${n}${['st', 'nd', 'rd'][((((n + 90) % 100) - 10) % 10) - 1] || 'th'}`; }

Input & expected output

Input

22

Expected output

"22nd"

The edge case

Input

13

Expected output

"13th"

Know the limits

  • 11, 12 and 13 take th, as the edge case shows. English only; use Intl.PluralRules({ type: "ordinal" }) for other languages.

The function above is the implementation used by the lab. The lab validates JSON types and caps size before execution; include equivalent validation when accepting untrusted input in your application.

Source & maintenance

Based on Add an ordinal suffix to a number from the original 1loc collection by Nguyen Huu Phuoc. Copyright (c) 2020 phuoc-ng. MIT licensed.

Curated implementation; explicit input contract, edge case and limits. Original MDX retained as inert source evidence.

Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.

Local fixture scope · Node.js 22.23.2 · reviewed October 28, 2026. No external service is required.

Keep exploring

Type two or more characters. Try “duplicate”, “webhook” or “retry”.