@cityssm/bill-data-extract
Version:
Extracts data from scanned bill documents into usable details.
20 lines (19 loc) • 782 B
JavaScript
import { trimTextFromEndUntil, trimTextFromStartUntil } from './trimmingHelpers.js';
export function trimToNumber(rawText, isMoneyWithTwoDecimalPlaces = true) {
let text = rawText.trim();
text = trimTextFromStartUntil(text, /\d/);
text = trimTextFromEndUntil(text, /\d/);
return cleanNumberText(text, isMoneyWithTwoDecimalPlaces);
}
export function cleanNumberText(numberText, isMoneyWithTwoDecimalPlaces) {
const text = numberText.replaceAll(',', '').replaceAll(' ', '');
const float = Number.parseFloat(text);
if (Number.isNaN(float)) {
console.log(`PARSING ERROR: ${text}`);
return undefined;
}
else if (isMoneyWithTwoDecimalPlaces) {
return Number.parseFloat(text.replaceAll('.', '')) / 100;
}
return float;
}