JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html>
<script type="text/javascript">
function getBrowserAndOS(userAgent, elements) {
var browserList = {
'Chrome': [ /Chrome\/(\S+)/ ],
'Firefox': [ /Firefox\/(\S+)/ ],
'MSIE': [ /MSIE (\S+);/ ],
'Opera': [
/Opera\/.*?Version\/(\S+)/,
/Opera\/(\S+)/
],
'Safari': [ /Version\/(\S+).*?Safari\// ]
},
re, m, browser, version;
var osList = {
'Windows': [ /Windows\/(\S+)/ ],
'Linux': [ /Linux\/(\S+)/ ]
},
re2, m2, os;
if (userAgent === undefined)
userAgent = navigator.userAgent;
if (elements === undefined)
elements = 2;
else if (elements === 0)
elements = 1337;
for (browser in browserList) {
while (re = browserList[browser].shift()) {
if (m = userAgent.match(re)) {
version = (m[1].match(new RegExp('[^.]+(?:\.[^.]+){0,' + --elements + '}')))[0];
//version = (m[1].match(new RegExp('[^.]+(?:\.[^.]+){0,}')))[0];
//return browser + ' ' + version;
console.log(browser + ' ' + version);
}
}
}
for (os in osList) {
while (re2 = osList[os].shift()) {
if (m2 = userAgent.match(re2)) {
//version = (m[1].match(new RegExp('[^.]+(?:\.[^.]+){0,' + --elements + '}')))[0];
//version = (m[1].match(new RegExp('[^.]+(?:\.[^.]+){0,}')))[0];
//return browser + ' ' + version;
console.log(os);
}
}
}
return null;
}
// Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.9) Gecko/20100825 Ubuntu/9.10 (karmic) Firefox/3.6.9
// Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
console.log(getBrowserAndOS(navigator.userAgent,...