使用正则表达式检索浏览器名称
Using regex to retrieve browser name
javascript中的RegExp出现问题。我试图只返回版本号和浏览器名称,即"firefox22.0"或"msie8.0"
console.log(navigatorSaysWhat())
function navigatorSaysWhat()
{
var rexp = new RegExp(/(firefox|msie|chrome|safari)'s('d+)('.)('d+)/i);
// works in ie but not in firefox
var userA = navigator.userAgent
var nav = userA.match(rexp);
return nav
}
上面的表达式不太管用。我正在尝试从字符串中匹配浏览器名称和版本号。
Mozilla/5.0(Windows NT 5.1;rv:22.0)Gecko/20100101 Firefox/22.0Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0;
我尝试过(firefox|msie|chrome|safari)''s(''d+)(./''/)(''d+或(firefox|msie|chrome|safari)''s(''d+)(*)(''d+。
正则表达式区分大小写。通过添加(?i)
或使用的正则表达式引擎提供的其他方式忽略大小写。
(?i)(firefox|msie|chrome|safari)[/'s](['d.]+)
下面是Python示例。
>>> agents = 'Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322; .NET4.0C'
>>> [[m.group(1), m.group(2)] for m in re.finditer(r'(?i)(firefox|msie|chrome|safari)['/'s](['d.]+)', agents)]
[['Firefox', '22.0'], ['MSIE', '8.0']]
在Javascript中:
var agents = 'Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322; .NET4.0C';
agents.match(/(firefox|msie|chrome|safari)[/'s](['d.]+)/ig)
=> ["Firefox/22.0", "MSIE 8.0"]
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 使用JSP从服务器检索和显示图像
- 通过Magento的网络服务检索运费
- Div在浏览器的检查元素中很暗,无法检索内容
- 如何从我的跨浏览器插件的跨域HEAD请求中检索响应标头
- 使用 javascript 保存后从浏览器本地存储中检索数据
- 获取浏览器信息的任何其他方式,而不是检索UserAgent
- 单击上一个按钮浏览器后,存储和检索数据的最佳方式是什么
- 检索客户端系统中安装的浏览器/代理的列表
- 使用正则表达式检索浏览器名称
- 为什么使用window.navigator.userAgent检索浏览器Explorer 11会被识别为Mozilla?
- 当需要从URL检索数据时,AJAX在浏览器中不起作用
- 浏览器(等)是否在内部优化它们对javascript对象属性的检索?
- 为什么request .get()使用Python和浏览器检索不同的HTML ?
- 使用jquery检索移动浏览器中屏幕的视口高度
- 浏览器从facebook应用程序检索facebook凭据
- 如何在本地浏览器中存储数据并从中检索回来
- browser.manage().logs().get('browser') logs不是检索浏览器调试
- 当浏览器检索到缓存的html页面时,JavaScript是否再次运行?