parseChineseNumber / parseRomanNumber / parseEnglishNumber
عددهایی را که برای خواندنِ آدمها نوشته شدهاند تجزیه میکند: 第二十三章، Chapter XIV، Part Three.
هر سه یک قرار مشترک دارند: وقتی ورودی را نتوان بهتمامی تجزیه کرد، بهجای حدس زدن null برمیگردانند. این تجزیهگرها معمولاً به تصمیم «آیا این خط یک عنوان است؟» خوراک میدهند و یک عدد اشتباه، کل بررسی توالی را خراب میکند.
API
| تابع | چه چیزی میپذیرد |
|---|---|
parseChineseNumber(value) | رقمها (نیمپهنا و تمامپهنا)، 一二三…، یکاهای 十百千万/萬، سادهشده و سنتی |
parseRomanNumber(value) | IVXLCDM، با هر حالت حروف، نشانهگذاری تفریقی (IV، IX) |
parseEnglishNumber(value) | رقمها، واژههای عددی انگلیسی one–twenty و سپس عددهای رومی |
کمککارهای رشتهای مرتبط: toHalfWidth(value) / toFullWidth(value) نویسههای تمامپهنا را یکدست میکنند و parseChineseNumber خودش این کار را برایتان انجام میدهد.
نمونه
js
import { parseChineseNumber, parseRomanNumber, parseEnglishNumber, toHalfWidth } from 'ranuts';
parseChineseNumber('二十三'); // 23
parseChineseNumber('一百零三'); // 103
parseChineseNumber('三萬'); // 30000
parseChineseNumber('第三章'); // null — نخست بخش عددی را جدا کنید
parseRomanNumber('MCMXCIV'); // 1994
parseEnglishNumber('Three'); // 3
toHalfWidth('(1)'); // '(1)'یادداشتها
- فقط بخش عددی را بدهید.
第三章مقدارnullمیدهد: نخست三را با الگوی خودتان بیرون بکشید و همان را تجزیه کنید. 十که چیزی پیش از آن نباشد یعنی ۱، پس十五میشود ۱۵ نه ۵.parseEnglishNumberنخست رقم، سپس واژه و سپس عدد رومی را میآزماید.twenty-oneو بالاتر پوشش داده نشدهاند؛ اگر لازم دارید جدول واژهها را گسترش دهید.