PreParsePostFormat
A Pre-parse / Post-format bővítmény lehetővé teszi a bemeneti adatok feldolgozását az elemzés előtt, illetve a karakterlánc kimenet módosítását a formázás után. Működése a Moment.js lokalizációs adatainak hasonló mechanizmusán alapul.
MEGJEGYZÉS: A bővítmény használatához először importálni kell a localeData
bővítményt, mivel annak funkcionalitására épül.
MEGJEGYZÉS: Ez a bővítmény a relatív idő bővítmény működésére is hatással van, a tervezett módon (a Moment.js implementáció viselkedését követve).
Példa
Például: Az AR (arab) lokalizációban kifejezetten arab számjegyek támogatására használják.
// Arabic [ar]
import dayjs from 'dayjs';
import preParsePostFormat from 'dayjs/plugin/preParsePostFormat';
dayjs.extend(preParsePostFormat);
const months =
'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
'_'
);
const symbolMap = {
1: '١',
2: '٢',
3: '٣',
4: '٤',
5: '٥',
6: '٦',
7: '٧',
8: '٨',
9: '٩',
0: '٠',
};
const numberMap = {
'١': '1',
'٢': '2',
'٣': '3',
'٤': '4',
'٥': '5',
'٦': '6',
'٧': '7',
'٨': '8',
'٩': '9',
'٠': '0',
};
const locale = {
name: 'ar',
// ...
preparse(string) {
return string
.replace(/[١٢٣٤٥٦٧٨٩٠]/g, match => numberMap[match])
.replace(/،/g, ',');
},
postformat(string) {
return string.replace(/\d/g, match => symbolMap[match]).replace(/,/g, '،');
},
// ...
};
// ...
A tesztek szintén jó példát mutatnak a bővítmény használatára, ha a fenti leírás nem lenne elég egyértelmű.