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



我在Javascript文件中有以下数组变量,旨在传递给Purgecss以获取其whitelistPatterns选项(请注意,我专门从gulp-purgecss插件中使用它(:

var purgeWLP = [
/^carousel-item.*/,    
/collapsing/,           
/show/,                
];

现在我想将此变量和其他项目变量存储在外部.json文件中,该文件旨在从不同位置和文件访问;我尝试使用以下代码:

{
"wlp": [
"/^carousel-item.*/",
"/collapsing/",
"/show/"
]
}

但是我遇到了错误并且没有得到我期望的结果,即与 javascript 文件中的purgeWLP变量完全相同的结果。

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

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

const json = `{
"wlp": [
"^carousel-item.*",
"collapsing",
"show"
]
}`
const wlp = JSON.parse(json).wlp // or const wlp = require('./project.json').wlp on nodejs
.map(str => new RegExp(str))
console.log(wlp)

要保存它们,您可以使用JSON.stringify()并将每个 RegExp 对象映射到其源字符串(请参阅伊曼纽尔·温蒂勒的评论(:

var purgeWLP = [
/^carousel-item.*/,    
/collapsing/,           
/show/,                
];
var result = JSON.stringify(purgeWLP.map(re => re.source));
console.log(result);

最新更新