parseChineseNumber / parseRomanNumber / parseEnglishNumber
Analiza números escritos para personas: 第二十三章, Chapter XIV, Part Three.
Los tres comparten un mismo contrato: devuelven null en vez de adivinar cuando la entrada no se puede analizar por completo. Estos analizadores suelen alimentar la decisión de «¿es esta línea un encabezado?», y un solo número mal leído envenena toda la comprobación de la secuencia.
API
| Función | Acepta |
|---|---|
parseChineseNumber(value) | Dígitos (de ancho medio y completo), 一二三…, las unidades 十百千万/萬, simplificado y tradicional |
parseRomanNumber(value) | IVXLCDM, en cualquier caja, con notación sustractiva (IV, IX) |
parseEnglishNumber(value) | Dígitos, los numerales ingleses one–twenty, y después números romanos |
Ayudas de cadena relacionadas: toHalfWidth(value) / toFullWidth(value) normalizan los caracteres de ancho completo, algo que parseChineseNumber ya aplica por ti.
Ejemplo
js
import { parseChineseNumber, parseRomanNumber, parseEnglishNumber, toHalfWidth } from 'ranuts';
parseChineseNumber('二十三'); // 23
parseChineseNumber('一百零三'); // 103
parseChineseNumber('三萬'); // 30000
parseChineseNumber('第三章'); // null — extrae antes el trozo numérico
parseRomanNumber('MCMXCIV'); // 1994
parseEnglishNumber('Three'); // 3
toHalfWidth('(1)'); // '(1)'Notas
- Pasa solo el trozo numérico.
第三章devuelvenull: saca antes el三con tu propio patrón y analiza eso. - Un
十sin nada delante vale 1, así que十五es 15, no 5. parseEnglishNumberprueba dígitos, luego palabras y luego números romanos. Detwenty-oneen adelante no está cubierto; amplía la tabla de palabras si lo necesitas.