
Security News
US Government Forces Anthropic to Pull Claude Fable Days After Launch
Anthropic says the directive cited national security concerns over a narrow jailbreak, but offered no specific technical details.
Normalize all Unicode decimal digits (Devanagari, Arabic, Thai, etc.) to ASCII numerals. Zero dependencies, performance-first.
Normalize Unicode decimal digits and minus signs to ASCII.
Converts digits from any script — Devanagari, Arabic-Indic, Thai, Bengali, Fullwidth, and 50+ others — to their ASCII equivalents (0–9). Also normalizes Unicode minus variants (−, -, ﹣) to ASCII -.
Pairs naturally with strnum — use anynum to normalize first, then strnum to detect the numeric type.
import anynum from 'anynum';
anynum('१२.३४') // → '12.34' (Devanagari)
anynum('٣٫١٤') // → '3.14' (Arabic-Indic)
anynum('−४२') // → '-42' (Unicode minus + Devanagari)
anynum('-99.5') // → '-99.5' (Fullwidth minus + Fullwidth digits)
anynum('hello') // → 'hello' (no digits — zero allocation)
anynum('100') // → '100' (already ASCII — zero allocation)
npm install anynum
// ESM
import anynum from 'anynum';
import { anynum } from 'anynum';
anynum(str: string): string
string, returns a string.Any Unicode character in category Nd (decimal digit) is mapped to its ASCII equivalent. This covers all positional decimal digit scripts — every script whose digits represent 0–9 by position.
anynum('๑๒๓') // Thai → '123'
anynum('੧੨੩') // Gurmukhi → '123'
anynum('᠑᠒᠓') // Mongolian → '123'
anynum('𝟏𝟐𝟑') // Math Bold → '123'
Three Unicode characters are normalized to ASCII - (U+002D):
| Code point | Character | Name |
|---|---|---|
U+2212 | − | MINUS SIGN (mathematical) |
U+FF0D | - | FULLWIDTH HYPHEN-MINUS |
U+FE63 | ﹣ | SMALL HYPHEN-MINUS |
Dashes used for punctuation — EN DASH (–), EM DASH (—), HYPHEN (‐) — are intentionally not converted.
anynum('−42') // U+2212 MINUS SIGN → '-42'
anynum('-42') // U+FF0D FULLWIDTH → '-42'
anynum('–42') // U+2013 EN DASH → '–42' (unchanged)
anynum and strnum compose cleanly:
import anynum from 'anynum';
import strnum from 'strnum';
strnum(anynum('१२.३४')) // → 12.34 (number, float)
strnum(anynum('−४२')) // → '-42' (string; strnum handles sign detection)
strnum(anynum('hello')) // → 'hello'
50+ decimal digit scripts from Unicode Nd category, including:
| Script | Zero | Sample |
|---|---|---|
| Devanagari (Hindi/Marathi/Nepali) | U+0966 | ०१२३४५६७८९ |
| Arabic-Indic | U+0660 | ٠١٢٣٤٥٦٧٨٩ |
| Extended Arabic-Indic (Urdu/Persian) | U+06F0 | ۰۱۲۳۴۵۶۷۸۹ |
| Bengali | U+09E6 | ০১২৩৪৫৬৭৮৯ |
| Gurmukhi | U+0A66 | ੦੧੨੩੪੫੬੭੮੯ |
| Gujarati | U+0AE6 | ૦૧૨૩૪૫૬૭૮૯ |
| Odia | U+0B66 | ୦୧୨୩୪୫୬୭୮୯ |
| Tamil | U+0BE6 | ௦௧௨௩௪௫௬௭௮௯ |
| Telugu | U+0C66 | ౦౧౨౩౪౫౬౭౮౯ |
| Kannada | U+0CE6 | ೦೧೨೩೪೫೬೭೮೯ |
| Malayalam | U+0D66 | ൦൧൨൩൪൫൬൭൮൯ |
| Thai | U+0E50 | ๐๑๒๓๔๕๖๗๘๙ |
| Lao | U+0ED0 | ໐໑໒໓໔໕໖໗໘໙ |
| Tibetan | U+0F20 | ༠༡༢༣༤༥༦༧༨༩ |
| Myanmar | U+1040 | ၀၁၂၃၄၅၆၇၈၉ |
| Khmer | U+17E0 | ០១២៣៤៥៦៧៨៩ |
| Mongolian | U+1810 | ᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙ |
| Fullwidth (CJK context) | U+FF10 | 0123456789 |
| Mathematical Bold | U+1D7CE | 𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗 |
| Adlam | U+1E950 | 𞥐𞥑𞥒𞥓𞥔𞥕𞥖𞥗𞥘𞥙 |
| … and 30+ more |
三, 百, 万) — these are ideographic numerals, not decimal digits. Each language has its own positional system requiring separate parsing logic.Ⅳ, Ⅻ) — not decimal digits.– EN, — EM, ‐ HYPHEN) — not numeric signs.٫) are passed through as-is. Separator normalization is the caller's responsibility.MIT
FAQs
Normalize all Unicode decimal digits (Devanagari, Arabic, Thai, etc.) to ASCII numerals. Zero dependencies, performance-first.
The npm package anynum receives a total of 4,527,256 weekly downloads. As such, anynum popularity was classified as popular.
We found that anynum demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Anthropic says the directive cited national security concerns over a narrow jailbreak, but offered no specific technical details.

Security News
A network of 152 Chrome live wallpaper extensions hid ad tracking and made extension-driven traffic look like Google search clicks.

Company News
Socket’s first CISO brings deep experience securing high-growth SaaS companies as open source supply chain threats accelerate.