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

使用字符串变量即时创建RegExps

扈翰
2023-03-14
问题内容

假设我想使以下内容可重复使用:

function replace_foo(target, replacement) {
   return target.replace("string_to_replace",replacement);
}

我可能会做这样的事情:

function replace_foo(target, string_to_replace, replacement) {
   return target.replace(string_to_replace,replacement);
}

使用字符串文字,这很容易。但是,如果我想对正则表达式更加棘手,该怎么办?例如,说我要替换, 而是
string_to_replace。本能地,我会尝试通过以下方式扩展上述内容:

function replace_foo(target, string_to_replace, replacement) {
   return target.replace(/^string_to_replace/,replacement);
}

这似乎不起作用。我的猜测是它认为string_to_replace是字符串文字,而不是代表字符串的变量。是否可以使用字符串变量即时创建JavaScript正则表达式?如果可能的话,这样的事情会很棒:

function replace_foo(target, string_to_replace, replacement) {
   var regex = "/^" + string_to_replace + "/";
   return target.replace(regex,replacement);
}

问题答案:

还有new RegExp(string, flags)哪里flagsgi。所以

'GODzilla'.replace( new RegExp('god', 'i'), '' )

评估为

zilla


 类似资料:
  • 问题内容: 我需要将这些bash变量读入JSON字符串,而我对bash并不熟悉。任何帮助表示赞赏。 问题答案: 如果您不提前知道变量的内容是否正确转义以包含在JSON中,则最好使用类似生成JSON 的程序。否则,您将因麻烦而最终使用无效的JSON。

  • 问题内容: 有没有一种方法可以从字符串创建全局变量?我知道您可以像这样从字符串中创建变量: 因此,使hello变量等于10。我不知道如何使该用户输入变量成为全局变量,但这不起作用: 问题答案: 您可以使用以下功能:

  • 问题内容: 我正在寻找一种在多行Python字符串中使用变量的干净方法。假设我想执行以下操作: 我正在寻找是否有与Perl中类似的东西来指示Python语法中的变量。 如果不是-用变量创建多行字符串的最干净方法是什么? 问题答案: 常用的方法是函数: 它可以与多行格式字符串一起正常工作: 您还可以传递带有变量的字典: 在语法上,最接近您要求的是模板字符串。例如: 我应该补充一点,尽管该功能更为常见

  • 我正在为学校制作一种API,用于定制XML编写器。我有: 我需要帮助的是: 我想创建一个与数据[i]同名的元素。 我使用的是dom4jxml。顺便说一句,放在这个罐子里。 我听说过一种叫做hashmap的方法,如果这是正确的方法,请有人解释一下如何使用它。

  • 当使用关键字 new 创建字符串时,它使用采用 String 文本的构造函数创建新的 String 对象。我想知道在调用 String 构造函数之前,文本是否存储在常量池中。 我这么问的原因是,在《OCA Java SE 7程序员I认证指南》中,Mala Gupta写道: 她在第一行表示,new创建的String对象不会存储在常量池中。这很好,但不清楚的是,第一行构造函数中的字面“Summer”是

  • 问题内容: 我有一个分配了字符串的变量,我想根据该字符串定义一个新变量。 问题答案: 你可以使用exec: