当前位置: 首页 > 面试题库 >

Javascript Regex:如何将变量放入正则表达式中?

艾自强
2023-03-14
问题内容

因此,例如:

function(input){
    var testVar = input;
    string = ...
    string.replace(/ReGeX + testVar + ReGeX/, "replacement")
}

但这当然是行不通的:)有什么办法可以做到这一点?


问题答案:
const regex = new RegExp(`ReGeX${testVar}ReGeX`);
...
string.replace(regex, "replacement");

更新资料

根据一些评论,请务必注意,如果可能存在恶意内容(例如,变量来自用户输入),则可能需要转义该 变量

ES6更新

在2019年,这通常使用模板字符串编写,并且上面的代码已更新。最初的答案是:

var regex = new RegExp("ReGeX" + testVar + "ReGeX");
...
string.replace(regex, "replacement");


 类似资料:
  • 大纲05提到Perl6没有将变量插入正则表达式中,但是可以将外部变量与模式相关联。据我所知,文档中没有提到这个功能。我认为人们还是会希望以某种方式从一个字符串建立一个模式,所以我很好奇这将如何工作。 这里有一个程序演示了现在发生的事情。我不知道这是应该发生的还是有人想要的。我在模式中插入一个变量。如果用,您将看到变量名。然后,我应用模式,它匹配。我更改变量的值。现在模式不匹配。将其更改为其他可行的

  • 问题内容: 我有这样的查找声明 它给出了答案。但是我需要某个变量值,而不是那个杂乱的值MT。如何实现呢?谢谢。 更新 我试过像“ /。 ” + searchterm +“ ./ ”无效。 问题答案: 除了使用内联语法创建正则表达式外,还可以使用RegExp对象基于字符串创建一个正则表达式

  • 问题内容: 我想在内部使用,该怎么办Python? 问题答案: 从python 3.6开始,你还可以使用文字字符串插值。在你的特定情况下,解决方案是:

  • 问题内容: 我想在JavaScript中创建一个方法,并且我认为使用正则表达式是最简洁的方法。但是,我不知道如何将变量传递给正则表达式。我能做到这一点已经将取代所有的实例有。 但是我想做这样的事情: 但是显然这只会替换文本…所以如何将这个变量传递给我的正则表达式字符串? 问题答案: 代替使用语法,可以构造一个新的RegExp对象: 您可以通过这种方式动态创建正则表达式对象。然后,您将执行以下操作:

  • 问题内容: 我目前正在将Web应用程序代码从PHP移植到JS。 我对此正则表达式有疑问。从PHP 这样使用 如何将其转换为在JS上工作? 先感谢您 问题答案: 没什么特别的。PHP regex语法与JavaScript中的语法非常相似: 您可以从 MDN的 本手册中找到有关JavaScript 中正 则表达式的更多信息:https : //developer.mozilla.org/en- US/

  • 我希望在我正在解析的包含代码的文本文件中提取特定变量的值。变量名会改变,它在代码中的位置也会改变,但我知道模式,因此我成功地获得了它的值并将其存储在一个名为myVar的变量中。 要获取值,即myVar和等号后引号之间的字符串,即我考虑使用正则表达式如下: 但是我在编译时得到一个错误: 错误:非法转义字符模式q=Pattern.compile(myVar "\= \"(. *)\"" ); 这与将m