Javascript Reg Exp括号内的数字

DrS*_*ove 1 javascript regex

if (!$is.IE5) {
    v = (ua.toLowerCase().match(new RegExp(".+(?:rv|it|ra|ie)[\\/: ]([\\d.]+)"))||[])[1];
}
Run Code Online (Sandbox Code Playgroud)

[1]在这个reg表达式中意味着什么?

Orb*_*ing 6

这是对答案的数组尊重.

v = (ua.toLowerCase().match(new RegExp(".+(?:rv|it|ra|ie)[\\/: ]([\\d.]+)"))||[])[1];
Run Code Online (Sandbox Code Playgroud)

将deference [1]应用于函数结果,以获得第一个匹配的组(组用括号分隔()).

所以v=第一组比赛(ua.toLowerCase().match(new RegExp(".+(?:rv|it|ra|ie)[\\/: ]([\\d.]+)"))||[]).

注意||[]最后允许不匹配不给出错误.

第一组匹配是([\\d.]+)组,由于(?:...)不匹配的组构造,未存储第一个括号.