@firestitch/address
Version:
24 lines • 2.79 kB
JavaScript
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=