有一个String变量的值如下。
"COMPANY=10^INVOICE_ID=100021^"
我需要将其放入两个变量中,如Company和InvoieId。
有什么可能的方法来实现JS?
这里有一种动态方式。您可以从obj
中获取任何值。
const str = "COMPANY=10^INVOICE_ID=100021^"
const obj = {}
const strArr = str.split('^')
strArr.forEach(str => {
const [key, value] = str.split('=')
obj[key] = value
})
const {COMPANY, INVOICE_ID } = obj
console.log(INVOICE_ID, COMPANY)
我们也可以通过正则表达式来实现
Regex101演示
let str = `COMPANY=10^INVOICE_ID=100021^`
let regex = /(w+)=d+/g
let match = regex.exec(str)
while(match){
console.log(match[1])
match = regex.exec(str)
}
如果这个代码将被调用多次,让我们创建一个函数:
const parseInput = (input) => {
const [company, invoice_id] =
input.split("^")
.map(kv => kv.split("=")[1]);
return {
company,
invoice_id
};
}