# Add an ordinal suffix to a number

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

Canonical: https://1loc.dev/number/add-an-ordinal-suffix-to-a-number/
Version: 1.0.0
Runtime: JavaScript · Node.js 22 / modern browsers
Verification: Local fixtures; no external services
Updated: 2026-10-28

## Implementation

```javascript
function addOrdinal(n) { return `${n}${['st', 'nd', 'rd'][((((n + 90) % 100) - 10) % 10) - 1] || 'th'}`; }
```

## Input

```json
22
```

## Expected output

```json
"22nd"
```

## Edge case

Input:
```json
13
```
Output:
```json
"13th"
```

## Limits

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

The lab validates types and size before calling this function. Add equivalent validation at your own trust boundary.

## Source and license

Original: https://github.com/phuocng/1loc/blob/14b481cf60dff1620ab1bb99a43b1f68068cdd9b/contents/add-an-ordinal-suffix-to-a-number.mdx
Author: Nguyen Huu Phuoc and original contributors
Contributors: See original repository history
Source commit: 14b481cf60dff1620ab1bb99a43b1f68068cdd9b
Copyright (c) 2020 phuoc-ng
License: MIT — https://1loc.dev/licenses/
Maintainer: Oveyon
Modifications: Curated implementation; explicit input contract, edge case and limits. Original MDX retained as inert source evidence.
