> ';x=1024;y=768'.match(/^(?:;x=(?<x>.+?)|;y=(?<y>.+?))*$/)
[
';x=1024;y=768',
undefined,
'768',
index: 0,
input: ';x=1024;y=768',
groups: [Object: null prototype] { x: undefined, y: '768' }
]
此正则表达式仅捕获
y
。我想同时捕获x
和y
。源字符串可以按任意顺序包含可选参数。即';x=1024;y=768'.match(REGEX)
应产生组:{x: '1024', y: '768'}
';y=768;x=1024'.match(REGEX)
应产生组:{x: '1024', y: '768'}
';y=768'.match(REGEX)
应产生组:{y: '768'}
(可选地x: undefined
)有什么方法可以使用JavaScript的regex引擎完成此操作,还是我必须求助于老式的解析?
无需假设数字。这些是通用键值对。
最佳答案
只要设置了^;x=(?<x>\d+)|;y=(?<y>\d+)$
标志,就可以使用此g
了。
如果它们并非总是数字,请将\d
更改为您知道可以使用的其他预定字符组。
关于javascript - 替代JavaScript中的分支重置组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59557352/