要通过JavaScript(特别是使用jquery 1.9)结合正则表达式来判断浏览器的版本,首先需要明确的是,jQuery 本身不直接提供解析用户代理字符串(User-Agent string)的功能,因为它主要是用于简化DOM操作、事件处理、动画和Ajax等。但是,你可以使用原生JavaScript的 `navigator.userAgent` 属性来获取用户代理字符串,并使用正则表达式来解析这个字符串以获取浏览器版本。
下面是一个使用原生JavaScript结合正则表达式来判断不同浏览器版本的方法,这个方法可以很容易地与jQuery 1.9或其他任何版本的jQuery一起使用:
function getBrowserVersion() {
var userAgent = navigator.userAgent;
var version;
// 示例:检测Chrome浏览器版本
if (/Chrome\/(\d+)/.test(userAgent)) {
version = RegExp.$1;
console.log('Chrome 版本: ' + version);
}
// 示例:检测Firefox浏览器版本
else if (/Firefox\/(\d+)/.test(userAgent)) {
version = RegExp.$1;
console.log('Firefox 版本: ' + version);
}
// 示例:检测Safari浏览器版本(注意:Safari和Chrome共享一些相同的字符串,但这里只匹配Safari)
else if (/Safari\/(\d+)/.test(userAgent) && !/Chrome\//.test(userAgent)) {
version = RegExp.$1;
console.log('Safari 版本: ' + version);
}
// 示例:检测IE浏览器版本(包括Microsoft Edge,但注意Edge在userAgent中的表示方式已经改变)
else if (/MSIE (\d+)/.test(userAgent) || /Trident\/.*; rv:(\d+)/.test(userAgent)) {
version = RegExp.$1 || RegExp.$2; // 对于IE和Edge,可能需要适配不同的匹配组
console.log('IE/Edge 版本: ' + version);
}
// 示例:检测Opera浏览器版本
else if (/Opera\/(\d+)/.test(userAgent)) {
version = RegExp.$1;
console.log('Opera 版本: ' + version);
}
// 如果不是以上任何一种浏览器,或者版本无法识别
else {
console.log('未知浏览器或无法识别版本');
}
}
// 调用函数
getBrowserVersion();
请注意,由于Microsoft Edge浏览器已经不再在User-Agent中包含`MSIE`字符串,而是使用与Chrome相似的字符串,但会包含一个`Edg`或`Edg/`(取决于Edge的版本)的标记,因此在判断Edge时,你可能需要使用不同的正则表达式,或者检查`navigator.userAgent`中是否存在`Edg`或`Edge`的字符串。
另外,由于用户代理字符串可以被用户或浏览器插件修改,因此这种方法并不总是100%可靠。在实际应用中,你可能还需要考虑其他方法来识别浏览器,比如特性检测(feature detection)。不过,如果你只是需要简单地根据用户代理字符串来判断浏览器版本,上述方法应该足够用了。