gpt4 book ai didi

javascript - 如何使用正则表达式和 '\' 字符正确解析 JSON?

转载 作者:太空宇宙 更新时间:2023-11-04 03:12:17 24 4
gpt4 key购买 nike

给出以下代码:

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);

它返回 null。我认为这与 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));

最佳答案

JSON 不接受正则表达式作为类型。因此,您只需将正则表达式放入一个字符串中(以/开头,以/结尾,然后在解析它之后,您需要将正则表达式提供给 new RegExp(str) 以将其转换为正则表达式。

你可以这样做:

var a = 'somegarbage=http://somesite.com/foo/bar/&moregarbage';
var x = JSON.parse('{"filter":"http.+/", "flags": "g"}');
x.filter = new RegExp(x.filter, x.flags);
var result = a.match(x.filter);
alert(result);​

此处的工作示例:http://jsfiddle.net/jfriend00/5pa2j/

关于javascript - 如何使用正则表达式和 '\' 字符正确解析 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10099277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com