Skip to content

Отдавать ответ без учета "ул." и т.п. в названии улицы #16

@1234ru

Description

@1234ru

Пользователи часто вводят название улицы, начиная с "ул." или "улица". Механизм воспринимает префикс как часть названия (то есть, ищет "улица Молодёжная" вместо просто "Молодёжная"), в результате поиск оканчивается неудачей.

На сервере перед поиском нужно отбрасывать префикс названия, чтобы этого не приходилось делать на клиенте. Ниже пример кода для sendBefore, который делает то, что требуется:

$().fias({
    sendBefore: function (query) {
        if (query.type == 'street') {
            query.name = adjustStreet(query.name);
        }
        return query;
    },
});

function adjustStreet(value) {
    var throwAway = [
        'аллея',
        'бульв', 'бульвар',
        'пер',
        'просп', 'пр-кт', 'проспект',
        'ул', 'улица',
        'ш', 'шоссе'
    ];
    var regexp = new RegExp(
        "^(" + throwAway.join("|") + ")\.?",
        "i"
    );
    value = value.replace(regexp, '').trim();
    return value;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions