UNPKG

find-australian-suburb

Version:
42 lines (31 loc) 1.04 kB
const { includes, uniqWith, isEqual } = require('lodash'); const { suburbState } = require('australian-suburb-list'); const findInArray = (array) => { const suburbList = []; if (array !== null) { array.map((value) => { const val = ` ${value.trim().toLowerCase()} `; suburbState.map((subVal) => { const sub = ` ${subVal.suburb.toLowerCase()} `; if (includes(val, sub)) { suburbList.push(subVal); } }); }); return uniqWith(suburbList, isEqual); } }; const findInText = (text) => { text.replace('.', ' '); text.replace(',', ' '); text.replace('(', ' '); text.replace(')', ' '); const res = text.match(/near\s+(?:[A-Zaotfsnew'][a-z-]+[ ]?)+|in\s+(?:[A-Zaotfsnew'][a-z-]+[ ]?)+|at\s+(?:[A-Zaotfsnew'][a-z-]+[ ]?)+|to\s+(?:[A-Zaotfsnew'][a-z-]+[ ]?)+|from\s+(?:[A-Zaotfsnew'][a-z-]+[ ]?)+|of\s+(?:[A-Zaotfsnew'][a-z-]+[ ]?)+/gm); const result = findInArray(res); if (result) return result; return []; }; module.exports = { findInArray, findInText, };