</div><div>var OS = {</div><div> "WINDOWS": "win",</div><div> "MACINTOSH": "mac",</div><div> "LINUX": "linux",</div><div> "IOS": "iOS",</div><div> "ANDROID": "Android",</div><div> "BLACKBERRY": "bb",</div><div> "WINDOWS_PHONE": "winphone"</div><div> };</div><div>var result = getOS();</div><div>alert(JSON.stringify(result));</div><div>function getOS() { </div><div> var userAgent = navigator.userAgent;</div><div> var platform, result;</div><div> function getDesktopOS(){</div><div> var pf = navigator.platform;</div><div> if (pf.indexOf("Win") != -1 ) { // 说明当前是Windows操作系统</div><div> var rVersion = /Windows NT (\d+).(\d)/i;</div><div> var uaResult = userAgent.match(rVersion);</div><div> var sVersionStr = "";</div><div> if (uaResult[1] == "6") {</div><div> if (uaResult[2] == 1) {</div><div> sVersionStr = "7"; // 说明当前运行在Windows 7 中</div><div> } else if (uaResult[2] > 1) {</div><div> sVersionStr = "8"; // 说明当前运行在Windows 8 中</div><div> }</div><div> } else {</div><div> sVersionStr = uaResult[1];</div><div> }</div><div> return {"name": OS.WINDOWS, "versionStr": sVersionStr};</div><div> } else if (pf.indexOf("Mac") != -1) {</div><div> return {"name": OS.MACINTOSH, "versionStr": ""}; // Macintosh操作系统</div><div> } else if (pf.indexOf("Linux") != -1) {</div><div> return {"name": OS.LINUX, "versionStr": ""}; // 说明当前运行在Linux操作系统</div><div> }</div><div> return null;</div><div> }</div><div> platform = /Windows Phone (?:OS )?([\d.]*)/; // windows phone的正则表达式</div><div> result = userAgent.match(platform);</div><div> if (result) {</div><div> return ({"name": OS.WINDOWS_PHONE, "versionStr": result[1]});</div><div> }</div><div> // BlackBerry 10</div><div> if (userAgent.indexOf("(BB10;") > 0) { </div><div> platform = /\sVersion\/([\d.]+)\s/; // BlackBerry的regular expression</div><div> result = userAgent.match(platform);</div><div> if (result) {</div><div> return {"name": OS.BLACKBERRY, "versionStr": result[1]};</div><div> } else {</div><div> return {"name": OS.BLACKBERRY, "versionStr": '10'};</div><div> }</div><div> }</div><div> // iOS, Android, BlackBerry 6.0+:</div><div> platform = /\(([a-zA-Z ]+);\s(?:[U]?[;]?)([\D]+)((?:[\d._]*))(?:.*[\)][^\d]*)([\d.]*)\s/;</div><div> result = userAgent.match(platform);</div><div> if (result) {</div><div> var appleDevices = /iPhone|iPad|iPod/;</div><div> var bbDevices = /PlayBook|BlackBerry/;</div><div> if (result[0].match(appleDevices)) {</div><div> result[3] = result[3].replace(/_/g, ".");</div><div> return ({"name": OS.IOS, "versionStr": result[3]}); // iOS操作系统</div><div> } else if (result[2].match(/Android/)) {</div><div> result[2] = result[2].replace(/\s/g, "");</div><div> return ({"name": OS.ANDROID, "versionStr": result[3]}); // Android操作系统</div><div> } else if (result[0].match(bbDevices)) {</div><div> return ({"name": OS.BLACKBERRY, "versionStr": result[4]}); // Blackberry</div><div> }</div><div> }</div><div> //Android平台上的Firefox浏览器</div><div> platform = /\((Android)[\s]?([\d][.\d]*)?;.*Firefox\/[\d][.\d]*/;</div><div> result = userAgent.match(platform);</div><div> if (result) {</div><div> return ({"name": OS.ANDROID, "versionStr": result.length == 3 ? result[2] : ""});</div><div> }</div><div> // Desktop</div><div> return getDesktopOS();</div><div> }</div><div>