我要求 js 正则表达式应该从 String 返回对象。
字符串:
'A: 100 - 200, B: Test & Test2, Tes3, C: 40, D: 11 22, E: E 444,55E'
输出:
{
A: '100 - 200',
B: 'Test & Test2, Tes3',
C: '40',
D: '11 22',
E: 'E 444,55E'
}
我尝试使用以下正则表达式。
const regexp = /([^:]+): ?([^,]*),? ?/g;
但是输出不正确。 E 的值是错误的。
{A: '100 - 200', B: 'Test & Test2', Tes3C: '40', D: '11 22', E: 'E 444'}
您可以拆分字符串并获取对象的各个部分。
const
string = 'A: 100 - 200, B: Test & Test2, Tes3, C: 40, D: 11 22, E: E 444,55E',
parts = string.split(/, (?=[^,]:)/),
result = Object.fromEntries(parts.map(s => s.match(/([^:]+): (.*)/).slice(1)));
console.log(result);