我需要解析任意RFC 7231 User-Agent
个字符串。有办法吗?我找到了ua-parser.js
,但它试图变得更聪明"通过将语义值附加到浏览器/设备/ OS / CPU信息,我只需要一个元素数组,其中每个元素都有一个名称和版本以及可选的注释。
我想我可以通过一个正则表达式来做到这一点,但评论会让它变得棘手。也许像/([A-Za-z0-9!#$%&'*+.^`|~-])\/([A-Za-z0-9!#$%&'*+.^`|~-])\s+(\([^)]+\))?/
,其中
[A-Za-z0-9!#$%&'*+.^`|~-]
是RFC 7230中描述的token
(使用两次,一次用于名称,一次用于版本)\s+(\([^)]+\))?
是必需的空格,可选地后跟括号括起来的非括号字符但是这并没有处理多个子用户代理字符串,我不确定在定义评论时是否遗漏了一些内容。