read-vietnamese-number
Version:
Đọc số thành chữ trong Tiếng Việt
42 lines (41 loc) • 1.02 kB
JavaScript
import { InvalidFormatError } from './type.js';
export function trimLeft(str, char) {
if (str === '') {
return '';
}
let pos = 0;
while (str[pos] === char[0]) {
pos++;
}
return str.substring(pos);
}
export function trimRight(str, char) {
if (str === '') {
return '';
}
let lastPos = str.length - 1;
while (str[lastPos] === char[0]) {
lastPos--;
}
return str.substring(0, lastPos + 1);
}
export 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;
}
export function validateNumber(value) {
switch (typeof value) {
case 'string': {
return value;
}
case 'bigint': {
return value.toString();
}
default: {
throw new InvalidFormatError('Invalid format');
}
}
}