find-australian-suburb
Version:
Extract and find Australian Suburb in text
42 lines (31 loc) • 1.04 kB
JavaScript
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,
};