Regex путаница JavaScript из переменной - PullRequest
0 голосов
/ 21 мая 2018

Я сопоставляю список слов (тоже со случайными символами), и регулярное выражение, похоже, не работает и в итоге выдает ошибку.У меня в основном есть переменная const (называемая content), которую я хочу найти, чтобы увидеть, есть ли определенные слова в переменной content.

, поэтому у меня есть

if (list.words.map(lword=> {
    const re = new RegExp("/" + lword+ "\\/g");
    if (re.test(content)) {
        return true;
    }
}

Но этопросто терпит неудачу и ничего не ловит.Я получаю ошибку Nothing to repeat.В частности: Uncaught SyntaxError: Invalid regular expression: //Lu(*\/g/: Nothing to repeat

Я не уверен, как искать через content, чтобы увидеть, содержит ли он lword.

1 Ответ

0 голосов
/ 21 мая 2018

Когда вы используете new RegExp(), вы не помещаете разделители и модификаторы в строку, а только выражение.Модификаторы идут в необязательном втором аргументе.

const re = new RegExp(lword, "g");

Если вы хотите рассматривать lword как строку для поиска, а не как шаблон регулярного выражения, вы не должны использовать RegExp впервое место.Просто найдите его с помощью indexOf():

const list = {
  words: ["this", "some", "words"]
};

const content = "There are some word here";

if (list.words.some(lword => content.indexOf(lword) != -1)) {
  console.log("words were found");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...