【发布时间】:2022-11-30 15:03:01
【问题描述】:
我有一个查询字符串,我解析它并形成对象数组,例如,
const regex = /((?:\bNOT\s+)?\w+)\s+IN\s+\('([^()]*)'\)/g;
const string = "DEVICE_SIZE IN ('036','048', '060','070') AND DEVICE_VOLTAGE IN ('1','3') AND NOT DEVICE_DISCHARGE_AIR IN ('S') AND NOT DEVICE_REFRIGERANT_CIRCUIT IN ('H', 'C')";
const data = Array.from(
string.matchAll(regex), m =>
({
[m[1]]: m[2].split("','")
})
);
console.log(data);
这里('036','048', '060','070')在060之前有一个额外的空格,所以形成的数组看起来像,
"DEVICE_SIZE": [
"036",
"048', '060",
"070"
]
但预期结果是
"DEVICE_SIZE": [
"036",
"048",
"060",
"070"
]
请帮助我忽略任何字符串之前的所有空格。
【问题讨论】:
-
怎么样:
[m[1]]: m[2].replace(/\ /g, "").split("','")
标签: javascript regex