【发布时间】:2021-12-27 06:20:31
【问题描述】:
我有一个字符串,我需要将其转换为对象数组
const str = "addias (brand|type) sneakers(product) for men(o)"
预期输出
let output = [
{
key:"addias",
value:["brand","type"]
},
{
key:"sneakers",
value:["product"]
},
{
key:"for men",
value:[]
}
]
我试过的代码
function gerateSchema(val) {
let split = val.split(" ")
let maps = split.map((i) => {
let obj = i.split("(")
let key = obj[0].replaceAll(/\s/g, "")
let cleanValue = obj[1].replace(/[{()}]/g, "")
let stripedValues = cleanValue.split("|")
return {
key: key,
value: stripedValues,
}
})
return maps
}
let out = gerateSchema(str)
但是当有一些带有空格的单词时会中断,例如for men
如何使用正则表达式进行拆分
【问题讨论】:
-
你有没有尝试过?请同时显示
-
请添加您尝试过的代码。有plenty of questions 匹配
()内的字符串并在|处拆分。 -
为什么
o没有添加到value数组中? -
@blurfus 功能添加
-
@adiga 包含或不包含都很好
标签: javascript arrays split splice