RegExp 未捕获 TypeError:无法读取 null 的属性“1”
2014-06-11
4091
我找到了此代码;
navigator.appVersion.match(/MSIE ([\d.]+)/)[1];
用于检测浏览器版本。此代码在 IE 8 以下版本中有效,但在 Google Chrome 中无效。谷歌浏览器中的错误提示为:
Uncaught TypeError: Cannot read property '1' of null
并且它指向此代码所属的行;
navigator.appVersion.match(/MSIE ([\d.]+)/)[1];
有没有什么办法可以修复这个问题?
为了更清楚起见,我在这里要完成的是检测浏览器版本:
var version = navigator.appVersion.match(/MSIE ([\d.]+)/)[1];
if(version <= 8.0)
{
execute code;
}
IE 中一切正常,但我在谷歌浏览器中遇到了错误:
Uncaught TypeError: Cannot read property '1' of null
并且它指向此代码所属的行;
navigator.appVersion.match(/MSIE ([\d.]+)/)[1];
1个回答
match
如果 regexp 未找到任何内容,则可能返回
null
。因此,您必须先获取匹配项,然后检查是否有匹配项。试试这个:
var ieMatches = navigator.appVersion.match(/MSIE ([\d.]+)/);
var isIE = !!ieMatches[1];
Alex
2014-06-11