как определить ос пользователя (название и версию) через javascript

Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
09 марта 2025

Чтобы определить операционную систему можно использовать navigator.userAgent объекта navigator.

Ниже пример, в котором создается функция для определения ОС. Она проверяет свойство userAgent с помощью регулярного выражения и сравнения строк:

function getOS() {
    const userAgent = window.navigator.userAgent;
    let osName = "Unknown OS";
    let osVersion = "";

    if (userAgent.indexOf("Win") > -1) {
        osName = "Windows";
        if (userAgent.indexOf("Windows NT 10") > -1) {
            osVersion = "10";
        } else if (userAgent.indexOf("Windows NT 6.3") > -1) {
            osVersion = "8.1";
        } else if (userAgent.indexOf("Windows NT 6.2") > -1) {
            osVersion = "8";
        } else if (userAgent.indexOf("Windows NT 6.1") > -1) {
            osVersion = "7";
        } else if (userAgent.indexOf("Windows NT 6.0") > -1) {
            osVersion = "Vista";
        } else if (userAgent.indexOf("Windows NT 5.1") > -1) {
            osVersion = "XP";
        }
    } else if (userAgent.indexOf("Mac") > -1) {
        osName = "Mac OS";
        const match = userAgent.match(/Mac OS X (\d+[\.\_\d]*)/); // Поиск версии
        if (match) {
            osVersion = match[1].replace('_', '.');
        }
    } else if (userAgent.indexOf("Linux") > -1) {
        osName = "Linux";
    } else if (userAgent.indexOf("Android") > -1) {
        osName = "Android";
        const match = userAgent.match(/Android (\d+\.\d+)/); // Поиск версии
        if (match) {
            osVersion = match[1];
        }
    } else if (userAgent.indexOf("like Mac") > -1) {
        osName = "iOS";
        const match = userAgent.match(/OS (\d+_[\d_]+)/); // Поиск версии
        if (match) {
            osVersion = match[1].replace('_', '.');
        }
    }

    return {
        name: osName,
        version: osVersion
    };
}

// Пример использования
const osInfo = getOS();
console.log(`Operating System: ${osInfo.name}, Version: ${osInfo.version}`);

Свойство userAgent**: С помощью navigator.userAgent получаем строку с информацией о браузере и ОС.

Функция проверяет содержание строки на наличие определённых подстрок (например, "Windows", "Mac", "Linux", "Android", "iOS") и использует регулярные выражения для извлечения версии, если это возможно.

Функция возвращает объект с именем и версией операционной системы.

0 0