我有一个更广泛的自动化,它填充一个查找表,然后将数据序列化为JSON文件,因为这是我想要的输出。
我需要在查找列标题的JSON格式中删除一次空格。
我想看看是否有可能有一个正则表达式,它将识别标题,并能够删除空格。
JSON字符串如下:
[
{
"INVOLVED PARTY ID":" 9445999606",
"CUSTOMER NUMBER":" 9445999606",
"PRODUCT":"Current Account",
"LAST UPDATED":"20/02/2020 10:33:00",
"APPLICATION STATUS":"Clearing Handbrake",
"PROGRESS":"Progress",
"APPLICANT":" ACCEPT FLEX INDICATOR Y",
"QUESTION 3 - HEART/CANCER CONDITIONS":null,
}
]正则表达式操作后所需的输出
[
{
"INVOLVEDPARTYID":" 9445999606",
"CUSTOMERNUMBER":" 9445999606",
"PRODUCT":"Current Account",
"LASTUPDATED":"20/02/2020 10:33:00",
"APPLICATIONSTATUS":"Clearing Handbrake",
"PROGRESS":"Progress",
"APPLICANT":" ACCEPT FLEX INDICATOR Y",
"QUESTION3-HEART/CANCERCONDITIONS":null,
}
]请注意,只有标题中的空格已被删除。
任何有关正则表达式字符串的帮助都将非常感谢,或者为我指明正确的方向。
发布于 2020-03-05 19:37:47
这里的逻辑是首先创建一个新的空结果对象,迭代前一个对象键,删除其中的空格,然后将它作为键分配给结果对象,并将前一个值(完好无损)作为this(已过滤的键)的值;
const yourData =[
{
"INVOLVED PARTY ID":" 9445999606",
"CUSTOMER NUMBER":" 9445999606",
"PRODUCT":"Current Account",
"LAST UPDATED":"20/02/2020 10:33:00",
"APPLICATION STATUS":"Clearing Handbrake",
"PROGRESS":"Progress",
"APPLICANT":" ACCEPT FLEX INDICATOR Y",
"QUESTION 3 - HEART/CANCER CONDITIONS":null,
}
];
let newData = yourData.map(obj=>{
let regexedObj = {};
Object.keys(obj).forEach( prevKey => {
//pattern can be /\s/ too, depends on use-case
const regexedKey = prevKey.replace(/ /g,'')
regexedObj[regexedKey] = obj[prevKey]
})
return regexedObj
})
console.log(newData)
发布于 2020-03-05 19:43:35
好吧,这个运行得很好:
(?<=\"[A-Z0-9 /-]*) (?=[A-Z0-9 /-]*\":)它有两个非捕获组:
在这两者之间有一个被捕捉到的空间。
https://stackoverflow.com/questions/60543015
复制相似问题