Избежал, но все еще 'Uncaught SyntaxError: Недопустимое регулярное выражение: regex: Unterminated group' - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть некоторые проблемы, чтобы понять, как избежать моего регулярного выражения.Я уже экранировал его с помощью этой функции:

function escapeRegExp(string) {
    return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
}

Но у меня все еще есть ошибка:

Uncaught SyntaxError: Недопустимое регулярное выражение: regex: Неопределенная группа

function escapeRegExp(string) {
     return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
}
var str = "ubuntu-18.10-desktop-amd64.iso.torrent"
var search = "*Ubuntu.18*"
search = escapeRegExp(search);
var re = new RegExp('^(?=.*' + search.split(/[\s,_.:-]+/).join(')(?=.*') + ')', 'gi');
var result = re.test(str);
console.log(result);

1 Ответ

0 голосов
/ 28 декабря 2018

Добавьте * к классу символов и добавьте перед ним дополнительную обратную косую черту:

search.split(/\\?[\s,_.:*-]+/).join(')(?=.*')

, без этого вышеуказанный метод разделяется на \., где найден период, и оставляет \ без изменений, чтопозже предшествует ) в методе объединения, приводящем к ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...