read-vietnamese-number
Version:
Đọc số thành chữ trong Tiếng Việt
48 lines (47 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.trimLeft = trimLeft;
exports.trimRight = trimRight;
exports.splitToDigits = splitToDigits;
exports.validateNumber = validateNumber;
const type_js_1 = require("./type.js");
function trimLeft(str, char) {
if (str === '') {
return '';
}
let pos = 0;
while (str[pos] === char[0]) {
pos++;
}
return str.substring(pos);
}
function trimRight(str, char) {
if (str === '') {
return '';
}
let lastPos = str.length - 1;
while (str[lastPos] === char[0]) {
lastPos--;
}
return str.substring(0, lastPos + 1);
}
function splitToDigits(str) {
const digits = str.split('').map((digit) => {
const value = parseInt(digit, 10);
return isNaN(value) || value < 0 || value > 9 ? null : value;
});
return digits.includes(null) ? null : digits;
}
function validateNumber(value) {
switch (typeof value) {
case 'string': {
return value;
}
case 'bigint': {
return value.toString();
}
default: {
throw new type_js_1.InvalidFormatError('Invalid format');
}
}
}