Как использовать переменную в регулярном выражении в Javascript? - PullRequest
0 голосов
/ 21 марта 2020

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

Мой код такой:

public regexVariable(vRegex: string, testSentences: Array<any> ) {
    const regex = new RegExp('/^.*\b(' + vRegex + ')\b.*$/');
    const filterSentece = testSentences.filter(result => {
        if (regex.test(result)) {
            return result
        })
}

Ответы [ 2 ]

1 голос
/ 21 марта 2020
const regex = new RegExp(`^.*\\b(${vRegex})\\b.*$`);

Вы можете использовать литералы шаблона (` вместо " / ') для построения строк, в которые можно интерполировать выражения; не более oldschool + ing.

Единственная вещь, которая действительно была проблемой с вашим кодом, это класс символов \b. Эта последовательность - это то, что вы хотите RegExp увидеть, но вы не можете просто написать это, иначе вы отправляете RegExp символ возврата на одну позицию .
Вам нужно написать \\b, который, как вы можете видеть из этой ссылки, создаст строку с \ и обычным b для RegExp для интерпретации .

1 голос
/ 21 марта 2020

Вы почти у цели, просто посмотрите на Конструктор RegEx

const regex = new RegExp('^.*\\b(' + vRegex + ')\\b.*$');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...