如何在JSON文件中正确存储正则表达式值数组并从Javascript中检索它?

如何在JSON文件中正确存储正则表达式值数组并从Javascript中检索它?,javascript,arrays,json,gulp,purge,Javascript,Arrays,Json,Gulp,Purge,我在Javascript文件中有以下数组变量,该变量将被传递到(请注意,我是专门从中使用它的): var purgeWLP=[ /^旋转木马项目。*/, /坍塌/, /显示/, ]; 现在我想将这个和其他项目变量存储在一个外部.json文件中,可以从不同的地方和文件访问;我已尝试使用以下代码: { "wlp": [ "/^carousel-item.*/", "/collapsing/", "/show/" ] } 但是我遇到了

我在Javascript文件中有以下数组变量,该变量将被传递到(请注意,我是专门从中使用它的):

var purgeWLP=[
/^旋转木马项目。*/,
/坍塌/,
/显示/,
];
现在我想将这个和其他项目变量存储在一个外部
.json
文件中,可以从不同的地方和文件访问;我已尝试使用以下代码:

{
    "wlp": [
        "/^carousel-item.*/",
        "/collapsing/",
        "/show/"
    ]
}
但是我遇到了错误,没有得到我期望的结果,也就是说,与javascript文件中的
purgeWLP
变量的结果完全相同


如何在
.json
文件中正确存储正则表达式值数组,并从Javascript中检索该数组?

将其存储为不带斜杠的字符串,并在解析json字符串后将其转换回正则表达式对象:

const json=`{
“wlp”:[
“^carousel项目。*”,
“崩溃”,
“表演”
]
}`
nodejs上的const-wlp=JSON.parse(JSON).wlp//或const-wlp=require('./project.JSON').wlp
.map(str=>newregexp(str))

console.log(wlp)
将它们存储为不带斜杠的字符串,并在解析JSON字符串后将它们转换回RegExp对象:

const json=`{
“wlp”:[
“^carousel项目。*”,
“崩溃”,
“表演”
]
}`
nodejs上的const-wlp=JSON.parse(JSON).wlp//或const-wlp=require('./project.JSON').wlp
.map(str=>newregexp(str))

console.log(wlp)
如果要保存它们,
JSON.stringify(wlp.map(re=>re.source))
注意,请确保正确转义反斜杠
newregexp(“\\s”)
not
newregexp(“\s”)
。这是一个很好的答案,解释了如何使用它。顺便说一句,
Regex.source
中的字符串将被转义。谢谢,如果我将JSON对象存储在Javascript文件中,这将起作用,如您的示例所示;但是,如果我试图从实际的外部
.json
(使用
const project=require('./config/project.json');
获取数组,我会得到一个意外的令牌错误。请使用json验证器在文件中查找错误。如果要保存它们,请使用
json.stringify(wlp.map(re=>re.source))
注意事项,确保反斜杠转义正确。
new RegExp(“\\s”)
not
new RegExp(“\s”)
.Good point@ggorlen,这是一个很好的答案,解释了如何使用它-.btw-从
Regex.source
中的字符串被转义。谢谢,如果我将JSON对象存储在Javascript文件中(如您的示例中),这是可行的;但是如果我试图从实际的外部
.JSON
(使用
const project=require('./config/project.json');
导入时,我收到了一个意外的令牌错误。请使用json验证程序在文件中查找错误。