给定以下代码:
var a = 'somegarbage=http://somesite.com/foo/bar/&moregarbage';
var result = a.match(/http.+\//g);
产生预期的结果:["http://somesite.com/foo/bar/"]
现在,如果我这样做:
var a = 'somegarbage=http://somesite.com/foo/bar/&moregarbage';
var config = JSON.parse('{"filter":"/http.+\\//g"}'); //notice the extra '\'?
var result = a.match(config.filter);
它返回空值。我认为它与\
JSON 中的字符串转义有关。我觉得我缺少一个简单的解决方案。我怎样才能解决这个问题?谢谢。
编辑:
我也试过这个,但它不起作用:
var a = 'somegarbage=http://somesite.com/foo/bar/&moregarbage';
var config = JSON.parse('{"filter":"/http.+\\//g"}'); //notice the extra '\'?
var result = a.match(new RegExp(config.filter));