Как исправить это регулярное выражение, чтобы удалить JSLint Ненужное побег предупреждение? - PullRequest
0 голосов
/ 26 ноября 2018

Я получаю URL-адрес, затем очищаю домен с помощью обработчика onClick в React, используя regEx, например:

const path = e.target.closest('a');
if (!path) return;
e.preventDefault();

console.log('path: ', path.href.replace(/^.*\/\/[^\/]+/, ''));

Так что, если URL-адрес скажет http://example.com/my-super-funky-page, он будетправильно console.log все после http://example.com - например:

/my-super-funky-page

Но у меня, похоже, проблема с regEx, содержащим бесполезный escape.Отчеты JS Lint:

Unnecessary escape character: \/  no-useless-escape

Что мне нужно удалить, чтобы все еще работать так, как ожидалось.Я попробовал несколько вещей, и это сломало результат.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Если вы не хотите получать уведомления о ненужных побегах, вы можете безопасно отключить это правило.

Это будет работать: ^.*\/\/[^/]+

В большинстве разновидностей регулярных выраженийединственные специальные символы или метасимволы внутри класса символов - это закрывающая скобка], обратная косая черта \, символ ^ и дефис -.Обычные метасимволы - это обычные символы внутри класса символов, и их не нужно экранировать обратной косой чертой.Чтобы найти звезду или плюс, используйте [+ *].Ваше регулярное выражение будет работать нормально, если вы избежите обычных метасимволов внутри класса символов, но это значительно снижает читабельность.

Источник

0 голосов
/ 26 ноября 2018
/^.*\/\/[^/]+/

/ в классе символов не нуждается в экранировании

...