@zlodiak

Как найти последнюю часть адреса?

Есть регулярное выражение, которое ищет часть строки адреса, соответствующую номеру дома:
((?<!(д(ом)?|стр(оение)?|/|-)\.?\s*\d*)\d+((,?\s*(к(ор(п(ус)?)?)?\.?)\s*\d+)|(\s*[а-я])|(\s*/\s*\d+))?\s*$)


Оно точно работает.

Но у меня не получается его применить в скрипте:
const addr = 'Россия, Республика Татарстан, Казань, улица Бутлерова, 41';
const regEx = new RegExp('((?<!(д(ом)?|стр(оение)?|/|-)\.?\s*\d*)\d+((,?\s*(к(ор(п(ус)?)?)?\.?)\s*\d+)|(\s*[а-я])|(\s*/\s*\d+))?\s*$)');
const beginStr = addr.match(regEx);
console.log('addr', addr)
console.log('regEx', regEx)
console.log('beginStr', beginStr)


Выражается это в том, что результат в консоли выводится как null.

Помогите пожалуйста исправить скрипт. LIVE DEMO здесь.
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
lidacriss
@lidacriss
wtf
когда используете в js регулярки c помощью конструктора RegExp, то следует экранировать слэши
т.е. не 1 слэш \, а 2 \\
ну или использовать литеральную запись
const regEx = /((?<!(д(ом)?|стр(оение)?|\/|-)\.?\s*\d*)\d+((,?\s*(к(ор(п(ус)?)?)?\.?)\s*\d+)|(\s*[а-я])|(\s*\/\s*\d+))?\s*$)/;


https://jsfiddle.net/nick_sdk/8zh4o7cn/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы