uaparser-js

Parsing user agent strings.


License
Apache-2.0
Install
npm install uaparser-js@1.0.6

Documentation

uaparser-js

Parsing user agent strings. Using uap-core(https://github.com/ua-parser/uap-core)

Install

npm install uaparser-js

Usage

Node

const uap = require('uaparser-js');

// get parser
const parser = uap();
// parse
let result = parser.parse('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0');

// or 
// let result = uap().parse('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0');

console.log(result.toString());
// {
//     "ua": {
//         "family": "Firefox",
//         "major": "43",
//         "minor": "0",
//         "patch": ""
//     },
//     "os": {
//         "family": "Mac OS X",
//         "major": "10",
//         "minor": "11",
//         "patch": "",
//         "patchMinor": ""
//     },
//     "device": {
//         "family": "Other",
//         "brand": "",
//         "model": ""
//     }
// }

Browser

<script src="uaparser.min.js"></script>
<script>

// get parser
var parser = uap();
// parse
var result = parser.parse('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0');

// or
// var result = uap().parse('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0');

console.log(result.toString());
// {
//     "ua": {
//         "family": "Firefox",
//         "major": "43",
//         "minor": "0",
//         "patch": ""
//     },
//     "os": {
//         "family": "Mac OS X",
//         "major": "10",
//         "minor": "11",
//         "patch": "",
//         "patchMinor": ""
//     },
//     "device": {
//         "family": "Other",
//         "brand": "",
//         "model": ""
//     }
// }
</script>

Using your own regex patterns

If you pass optional regex patterns when getting the parser, it will be merged with the embedded regex patterns.
Optional patterns have higher priority than the embedded patterns so if you pass a user agent string which matches both, optional patterns replacement will be applied.
Be aware that optional patterns will override the embedded patterns if you pass the same regex value.

const uap = require('uaparser-js');

const regex = {
    user_agent_parsers: [
        {
            regex: 'Mozilla',
            family_replacement: 'MyFamRep',
            v1_replacement: 'MyMajorRep',
            v2_replacement: 'MyMinorRep',
            v3_replacement: 'MyPatchRep'
        }
    ],
    os_parsers: [
        {
            regex: 'Macintosh',
            os_replacement: 'MyOSFamRep',
            os_v1_replacement: 'MyOSMajorRep',
            os_v2_replacement: 'MyOSMinorRep',
            os_v3_replacement: 'MyOSPatchRep',
            os_v4_replacement: 'MyOSPatchMinorRep'
        }
    ],
    device_parsers: []
}


let embeddedResult = uap().parse('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0');
console.log(embeddedResult.toString());
// {
//     "ua": {
//         "family": "Firefox",
//         "major": "43",
//         "minor": "0",
//         "patch": ""
//     },
//     "os": {
//         "family": "Mac OS X",
//         "major": "10",
//         "minor": "11",
//         "patch": "",
//         "patchMinor": ""
//     },
//     "device": {
//         "family": "Other",
//         "brand": "",
//         "model": ""
//     }
// }


let optionalResult = uap(regex).parse('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0');
console.log(optionalResult.toString());
// {
//     "ua": {
//         "family": "MyFamRep",
//         "major": "MyMajorRep",
//         "minor": "MyMinorRep",
//         "patch": "MyPatchRep"
//     },
//     "os": {
//         "family": "MyOSFamRep",
//         "major": "MyOSMajorRep",
//         "minor": "MyOSMinorRep",
//         "patch": "MyOSPatchRep",
//         "patchMinor": "MyOSPatchMinorRep"
//     },
//     "device": {
//         "family": "Other",
//         "brand": "",
//         "model": ""
//     }
// }

License

Apache License, Version 2.0