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,...