簡體   English   中英

在 Javascript 的正則表達式中包含變量

[英]Including variable inside regex in Javascript

我有這個正則表達式字符串來捕捉任何以go/開頭的句子:

/\bgo/i

它工作得很好。 但是,單詞go可以更改,因此我想在其中包含一個變量,因此我將其移至RegExp ,如下所示:

const variable = 'go';
const rex = new RegExp(`/\b${variable}/`, 'i');`

但是,它似乎不起作用,我不知道為什么。 我什至嘗試刪除開始/結束序列字符,但它仍然不起作用。

我想你想要這個:

const rex = new RegExp(`\\b${variable}/`, 'i')

使用RegExp構造函數時,您不想在開頭和結尾包含/ ,這將在文字正則表達式上,例如:

const rex = /foo/

那些/只是正則表達式文字語法,而不是正則表達式內容的一部分。 盡管您似乎確實想要一個實際的尾隨/ ,但它仍然存在。

其次,您必須將\b的反斜杠雙重轉義為\\b 這是因為在普通字符串文字中,反斜杠會轉義下一個字符。 在這種情況下, b 但是你想要你的正則表達式中的反斜杠,所以你必須用反斜杠轉義反斜杠。

 const variable = 'go' const rex = new RegExp(`\\b${variable}/`, 'i') console.log('regex:', rex) // shows the regex that was created console.log(rex.test('go/'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM