PreParsePostFormat
Pre-Parse / Post-Format ermöglicht es Ihnen, die Eingabe vor der Verarbeitung durch den Parser zu manipulieren und die Ausgabezeichenfolgen nach der Formatierung zu bearbeiten. Basierend auf einem ähnlichen Mechanismus für Gebietsschemas in moment.js.
HINWEIS: Dieses Plugin erfordert den Import des localeData
-Plugins, bevor dieses Plugin importiert wird, da es dessen Funktionalität nutzt.
HINWEIS: Dieses Plugin beeinflusst absichtlich auch das Relativzeit-Plugin (analog zur Implementierung in moment.js).
Anwendungsbeispiel
Es wird beispielsweise im AR-Gebietsschema verwendet, um arabische Ziffern zu unterstützen.
// Arabisch [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, '،');
},
// ...
};
// ...
Die Tests können Ihnen ebenfalls ein besseres Verständnis der Verwendung des Plugins vermitteln, falls die obigen Informationen nicht ausreichen.