从字符串构建RegExp时无法获得预期的输出

时间:2016-11-11 19:03:31

标签: javascript regex casperjs

在casperjs(web scraping依赖)中,我们无法将RegExp对象直接传递给网页上下文。所以,我需要将regexp作为字符串传递给网页上下文并在那里构建RegExp。

knex migrate:latest

Using environment: development
Error: The migration directory is corrupt, the following files are missing: 20161110130954_auth_level.js

我做错了什么建议,以获得" ABCD"的预期输出?

1 个答案:

答案 0 :(得分:1)

由于您只能使用字符串,因此将模式定义为字符串(记住要转义每个反斜杠以在正则表达式中获取文字反斜杠)并从模式中构建RegExp对象:

var normalize = {
            regexp: '(\\()(\\w*)(\\))',
            newValue: '$2'
       }; 
var newString = string.replace(new RegExp(normalize.regexp, "g"), normalize.newValue); 

“g”修饰符在RegExp构造函数中声明,而不是regexp字符串模式(因为JS正则表达式不支持内联修饰符)。