从Javascript中的字符串中提取唯一属性



我们有一个字符串,用于过滤器查询。我们需要从下面的字符串中提取唯一的属性键(例如:z5,l3,d(。我试图将它转换为JSON格式,并使用JSON.parse((提取它。但它只需要第一个对象。

有什么更好的方法来实现它吗?

let initialString = ""$or":[{"z5":"NEW"},{"z5":"OLD"}],"$or":[{"l3":"8125"}],"$or":[{"d":"20982056"}]"
let filteredString = initialString .replace(/[&/\#+()$~%.'*?<>]/g, '')
let finalString = `{"${filteredString .replace(/\/g, '').substring(1, filteredString .length)}}`;
let jsonString= JSON.parse(finalString );

如何从字符串中获取属性键(z5,l3,d(?

我不确定你是只想要一个键数组,还是只想要带有这些键的对象,所以这里都是。。。

let initialString = `""$or":[{"z5":"NEW"},{"z5":"OLD"}],"$or":[{"l3":"8125"}],"$or":[{"d":"20982056"}]"`
let finalJSON = [...initialString.match(/{(.*?)}/g, '')]
console.log(finalJSON)
console.log(finalJSON[1])
let keyArray = [... new Set(initialString.match(/{(.*?)}/g, '').map(e=>e.replace(/"/g,'')).map(e => e.split(":")[0].slice(1)))];
console.log(keyArray)

最新更新