Помогите пожалуйста исправить скрипт.
Я получаю адреса определённых видов(перечислил в комментариях). Моя задача в том, чтобы добавить перед номером дома(если он есть) фразу
'д. '
.
// const addr = 'Россия, Республика Татарстан, Казань, площадь 1 мая';
// const addr = 'Россия, Республика Татарстан, Казань, улица Бутлерова, 44А';
// const addr = 'Россия, Республика Татарстан, Казань, улица Бутлерова, д. 44А';
// const addr = 'Россия, Республика Татарстан, Казань, улица Бутлерова, д. 44';
const addr = 'Россия, Республика Татарстан, Казань, улица Бутлерова, 44';
const homeNum = addr.match(/\d+$/);
const homeLabel = addr.match(/(д.)/g);
let result = addr;
if(!homeLabel && homeNum && homeNum[0]) {
console.log('replace')
result = addr.replace(/\d+$/, 'д. ' + homeNum[0]);
}
console.log('result', result)
console.log('homeNum', homeNum);
console.log('homeLabel', homeLabel);
LIVE DEMO здесь.
Как видите, я эту задачу решил. При помощи регулярных выражений я ищу последнюю цифру в строке адреса и нехитрыми манипуляциями добавляю фразу
'д. '
. Если номера дома в конце строки нет или фраза 'д. ' уже присутствует, то исходную строку адреса не изменяю
Но проблема в том, что номер дома может содержать букву корпуса. например: 12A, 101Б, и т.д. Помогите пожалуйста учесть это.