我正在为 webpack 编写一个简单的加载器,最后一步我需要删除该函数的双引号。请参阅下面的示例:
我得到的字符串如下所示:
`export default {
mykey:
[
{
valueString: "string",
removeQuotesForValue: "() => import(/* webpackChunkName: 'a' */ 'pathToA')"
},
{
valueString: "someOtherString",
removeQuotesForValue: "() => import(/* webpackChunkName: 'b' */ 'pathToB')"
}
]
}`
我需要删除导入函数的双引号才能得到:
`export default {
mykey:
[
{
valueString: "string",
removeQuotesForValue: () => import(/* webpackChunkName: 'a' */ 'pathToA')
},
{
valueString: "someOtherString",
removeQuotesForValue: () => import(/* webpackChunkName: 'b' */ 'pathToB')
}
]
}`
如果我知道 key removeQuotesForValue
是否可以使用 JavaScript 正则表达式来实现此目的永远不会改变?
最佳答案
通常,强烈建议不要使用正则表达式处理源代码。但是,如果您可以信赖 removeQuotesForValue
这个词,您可以选择:
(removeQuotesForValue[^\n"]+)"([^\n"]+)"
在 JavaScript
中:
let source = `export default {
mykey:
[
{
valueString: "string",
removeQuotesForValue: "() => import(/* webpackChunkName: 'a' */ 'pathToA')"
},
{
valueString: "someOtherString",
removeQuotesForValue: "() => import(/* webpackChunkName: 'b' */ 'pathToB')"
}
]
}`;
let regex = /(removeQuotesForValue[^\n"]+)"([^\n"]+)"/g;
source = source.replace(regex, "$1$2");
console.log(source);
关于javascript - 仅删除特定值的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54822537/