繁体   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