UNPKG

@firestitch/address

Version:
24 lines 2.79 kB
export function extractUnit(text) { const primaryUnitRegex = /((unit|apt|#|apartment|building|floor|suite|room|department|po\s*box)\s?#?\d+([,.])?(\w)?([,.])?)/gi; const secondaryUnitRegex = /-\s?\d+/gi; const nonWordOrDigitChar = /^[^a-z\d]*|[^a-z\d]*$/gi; let unit = [ ...(text.match(primaryUnitRegex) || []), ...(text.match(secondaryUnitRegex) || []), ][0]; if (unit) { text = text .replace(unit, '') .trim(); unit = unit .replace(nonWordOrDigitChar, '') .replace('unit', 'Unit') .trim(); } text = text.replace(nonWordOrDigitChar, '').trim(); return { text, unit, }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdC11bml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9oZWxwZXJzL2V4dHJhY3QtdW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVk7SUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxxR0FBcUcsQ0FBQztJQUMvSCxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztJQUN2QyxNQUFNLGtCQUFrQixHQUFHLHlCQUF5QixDQUFDO0lBRXJELElBQUksSUFBSSxHQUFHO1FBQ1QsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVMLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxJQUFJLEdBQUcsSUFBSTthQUNSLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2FBQ2pCLElBQUksRUFBRSxDQUFDO1FBRVYsSUFBSSxHQUFHLElBQUk7YUFDUixPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO2FBQy9CLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO2FBQ3ZCLElBQUksRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRW5ELE9BQU87UUFDTCxJQUFJO1FBQ0osSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RVbml0KHRleHQ6IHN0cmluZykge1xuICBjb25zdCBwcmltYXJ5VW5pdFJlZ2V4ID0gLygodW5pdHxhcHR8I3xhcGFydG1lbnR8YnVpbGRpbmd8Zmxvb3J8c3VpdGV8cm9vbXxkZXBhcnRtZW50fHBvXFxzKmJveClcXHM/Iz9cXGQrKFssLl0pPyhcXHcpPyhbLC5dKT8pL2dpO1xuICBjb25zdCBzZWNvbmRhcnlVbml0UmVnZXggPSAvLVxccz9cXGQrL2dpO1xuICBjb25zdCBub25Xb3JkT3JEaWdpdENoYXIgPSAvXlteYS16XFxkXSp8W15hLXpcXGRdKiQvZ2k7XG5cbiAgbGV0IHVuaXQgPSBbXG4gICAgLi4uKHRleHQubWF0Y2gocHJpbWFyeVVuaXRSZWdleCkgfHwgW10pLFxuICAgIC4uLih0ZXh0Lm1hdGNoKHNlY29uZGFyeVVuaXRSZWdleCkgfHwgW10pLFxuICBdWzBdO1xuXG4gIGlmICh1bml0KSB7XG4gICAgdGV4dCA9IHRleHRcbiAgICAgIC5yZXBsYWNlKHVuaXQsICcnKVxuICAgICAgLnRyaW0oKTtcblxuICAgIHVuaXQgPSB1bml0XG4gICAgICAucmVwbGFjZShub25Xb3JkT3JEaWdpdENoYXIsICcnKVxuICAgICAgLnJlcGxhY2UoJ3VuaXQnLCAnVW5pdCcpXG4gICAgICAudHJpbSgpO1xuICB9XG5cbiAgdGV4dCA9IHRleHQucmVwbGFjZShub25Xb3JkT3JEaWdpdENoYXIsICcnKS50cmltKCk7XG5cbiAgcmV0dXJuIHtcbiAgICB0ZXh0LFxuICAgIHVuaXQsXG4gIH07XG59XG4iXX0=