我正在为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')
}
]
}`
如果我知道密钥removeQuotesForValue
永远不会改变,是否可以使用JavaScript正则表达式来实现?
答案 0 :(得分:1)
通常,强烈建议不要使用正则表达式来处理源代码。但是,如果您可以依靠单词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);
答案 1 :(得分:0)
尝试此操作,可防止意外删除任何功能“ 报价”
let removeQuotesForValue = "() => import(/* webpackChunkName: 'b' */ 'pathToB')",
exportedValue;
exportedValue = removeQuotesForValue.slice(0, removeQuotesForValue.length-1);
console.log(exportedValue)