【问题标题】:Extract unique attributes from string in Javascript从Javascript中的字符串中提取唯一属性
【发布时间】:2021-07-13 06:21:55
【问题描述】:

我们有一个用于过滤查询的字符串。我们需要从下面的字符串中提取唯一的属性键(例如: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)?

【问题讨论】:

    标签: javascript regex string


    【解决方案1】:

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

    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)

    【讨论】:

    • 只想要键数组。感谢您分享这两个解决方案。这个简单好用
    猜你喜欢
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多