括号中的Javascript正则表达式编号

时间:2011-02-19 00:27:39

标签: javascript regex

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

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

1 个答案:

答案 0 :(得分:6)

答案是数组参考

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

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

所以v = (ua.toLowerCase().match(new RegExp(".+(?:rv|it|ra|ie)[\\/: ]([\\d.]+)"))||[])的第一个小组匹配。

注意最后的||[]允许不匹配,不会出错。

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