mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 07:58:45 +03:00
56 lines
54 KiB
HTML
56 lines
54 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US" dir="ltr">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>Extending Regex | Detect Browser, OS, CPU, & Device with JavaScript</title>
|
||
<meta name="description" content="Detect Browser, OS, CPU, & Device with JavaScript">
|
||
<link rel="preload stylesheet" href="/ua-parser-js/docs/v2/assets/style.57130259.css" as="style">
|
||
<script type="module" src="/ua-parser-js/docs/v2/assets/app.a149bf9c.js"></script>
|
||
<link rel="preload" href="/ua-parser-js/docs/v2/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
|
||
<link rel="modulepreload" href="/ua-parser-js/docs/v2/assets/chunks/framework.eb892692.js">
|
||
<link rel="modulepreload" href="/ua-parser-js/docs/v2/assets/chunks/theme.683fbe81.js">
|
||
<link rel="modulepreload" href="/ua-parser-js/docs/v2/assets/intro_extending-regex.md.83598a7d.lean.js">
|
||
<link rel="icon" type="image/png" sizes="32x32" href="/images/logo.png">
|
||
<script>window?.localStorage?.setItem("vitepress-theme-appearance",window?.localStorage?.getItem("vitepress-theme-appearance")??"dark");</script>
|
||
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"dark",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
||
</head>
|
||
<body>
|
||
<div id="app"><div class="Layout" data-v-1d113308><!--[--><!--]--><!--[--><span tabindex="-1" data-v-b1e5adb7></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-b1e5adb7> Skip to content </a><!--]--><!----><header class="VPNav" data-v-1d113308 data-v-7c10a9e2><div class="VPNavBar has-sidebar" data-v-7c10a9e2 data-v-b1bba9bb><div class="container" data-v-b1bba9bb><div class="title" data-v-b1bba9bb><div class="VPNavBarTitle has-sidebar" data-v-b1bba9bb data-v-4b4b99f1><a class="title" href="/ua-parser-js/docs/v2/" data-v-4b4b99f1><!--[--><!--]--><!--[--><img class="VPImage logo" src="/ua-parser-js/docs/v2/images/logo.png" alt data-v-5666d3c1><!--]--><!--[-->UAParser.js<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-b1bba9bb><div class="curtain" data-v-b1bba9bb></div><div class="content-body" data-v-b1bba9bb><!--[--><!--]--><!----><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-b1bba9bb data-v-492ea56d><span id="main-nav-aria-label" class="visually-hidden" data-v-492ea56d>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/ua-parser-js/docs/v2/" tabindex="0" data-v-492ea56d data-v-42f218ec data-v-40bbea7a><!--[-->Home<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-492ea56d data-v-e4ec5600><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-e4ec5600><span class="text" data-v-e4ec5600><!----> 2.0.0-alpha <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-e4ec5600><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-e4ec5600><div class="VPMenu" data-v-e4ec5600 data-v-97491713><div class="items" data-v-97491713><!--[--><!--[--><div class="VPMenuLink" data-v-97491713 data-v-ec28281a><a class="VPLink link" href="https://github.com/faisalman/ua-parser-js/blob/master/changelog.md" target="_blank" rel="noreferrer" data-v-ec28281a data-v-40bbea7a><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-40bbea7a><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-97491713 data-v-ec28281a><a class="VPLink link" href="https://github.com/faisalman/ua-parser-js#development" target="_blank" rel="noreferrer" data-v-ec28281a data-v-40bbea7a><!--[-->Contributing<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-40bbea7a><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-b1bba9bb data-v-98566150><label title="toggle dark mode" data-v-98566150 data-v-12bb4a49><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-checked="false" data-v-12bb4a49 data-v-0832a754><span class="check" data-v-0832a754><span class="icon" data-v-0832a754><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-12bb4a49><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-12bb4a49><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></label></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-b1bba9bb data-v-164c457f data-v-5f80acc1><!--[--><a class="VPSocialLink" href="https://github.com/faisalman/ua-parser-js" aria-label target="_blank" rel="noopener" data-v-5f80acc1 data-v-ac1ebd17><svg color="#fff" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://www.npmjs.com/package/ua-parser-js" aria-label target="_blank" rel="noopener" data-v-5f80acc1 data-v-ac1ebd17><svg color="#CB3837" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>npm</title><path d="M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"/></svg></a><a class="VPSocialLink" href="https://opencollective.com/ua-parser-js" aria-label target="_blank" rel="noopener" data-v-5f80acc1 data-v-ac1ebd17><svg color="#7FADF2" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Open Collective</title><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12c2.54 0 4.894-.79 6.834-2.135l-3.107-3.109a7.715 7.715 0 1 1 0-13.512l3.107-3.109A11.943 11.943 0 0 0 12 0zm9.865 5.166l-3.109 3.107A7.67 7.67 0 0 1 19.715 12a7.682 7.682 0 0 1-.959 3.727l3.109 3.107A11.943 11.943 0 0 0 24 12c0-2.54-.79-4.894-2.135-6.834z"/></svg></a><a class="VPSocialLink" href="https://faisalman.github.io/ua-parser-js" aria-label target="_blank" rel="noopener" data-v-5f80acc1 data-v-ac1ebd17><svg color="#5B0BB5" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Demo</title><path d="M12 0a1.44 1.44 0 0 0-.947.399L.547 10.762a1.26 1.26 0 0 0-.342.808v11.138c0 .768.53 1.292 1.311 1.292h20.968c.78 0 1.311-.522 1.311-1.292V11.57a1.25 1.25 0 0 0-.34-.804L15.68 3.097h-.001L12.947.4A1.454 1.454 0 0 0 12 0Zm0 6.727 6.552 6.456v5.65H5.446v-5.65z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-b1bba9bb data-v-608cba8b data-v-e4ec5600><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-e4ec5600><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-e4ec5600><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-e4ec5600><div class="VPMenu" data-v-e4ec5600 data-v-97491713><!----><!--[--><!--[--><!----><div class="group" data-v-608cba8b><div class="item appearance" data-v-608cba8b><p class="label" data-v-608cba8b>Appearance</p><div class="appearance-action" data-v-608cba8b><label title="toggle dark mode" data-v-608cba8b data-v-12bb4a49><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-checked="false" data-v-12bb4a49 data-v-0832a754><span class="check" data-v-0832a754><span class="icon" data-v-0832a754><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-12bb4a49><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-12bb4a49><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></label></div></div></div><div class="group" data-v-608cba8b><div class="item social-links" data-v-608cba8b><div class="VPSocialLinks social-links-list" data-v-608cba8b data-v-5f80acc1><!--[--><a class="VPSocialLink" href="https://github.com/faisalman/ua-parser-js" aria-label target="_blank" rel="noopener" data-v-5f80acc1 data-v-ac1ebd17><svg color="#fff" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://www.npmjs.com/package/ua-parser-js" aria-label target="_blank" rel="noopener" data-v-5f80acc1 data-v-ac1ebd17><svg color="#CB3837" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>npm</title><path d="M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"/></svg></a><a class="VPSocialLink" href="https://opencollective.com/ua-parser-js" aria-label target="_blank" rel="noopener" data-v-5f80acc1 data-v-ac1ebd17><svg color="#7FADF2" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Open Collective</title><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12c2.54 0 4.894-.79 6.834-2.135l-3.107-3.109a7.715 7.715 0 1 1 0-13.512l3.107-3.109A11.943 11.943 0 0 0 12 0zm9.865 5.166l-3.109 3.107A7.67 7.67 0 0 1 19.715 12a7.682 7.682 0 0 1-.959 3.727l3.109 3.107A11.943 11.943 0 0 0 24 12c0-2.54-.79-4.894-2.135-6.834z"/></svg></a><a class="VPSocialLink" href="https://faisalman.github.io/ua-parser-js" aria-label target="_blank" rel="noopener" data-v-5f80acc1 data-v-ac1ebd17><svg color="#5B0BB5" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Demo</title><path d="M12 0a1.44 1.44 0 0 0-.947.399L.547 10.762a1.26 1.26 0 0 0-.342.808v11.138c0 .768.53 1.292 1.311 1.292h20.968c.78 0 1.311-.522 1.311-1.292V11.57a1.25 1.25 0 0 0-.34-.804L15.68 3.097h-.001L12.947.4A1.454 1.454 0 0 0 12 0Zm0 6.727 6.552 6.456v5.65H5.446v-5.65z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-b1bba9bb data-v-5dea55bf><span class="container" data-v-5dea55bf><span class="top" data-v-5dea55bf></span><span class="middle" data-v-5dea55bf></span><span class="bottom" data-v-5dea55bf></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-1d113308 data-v-117fc0fa><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-117fc0fa><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-117fc0fa><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-117fc0fa>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-117fc0fa data-v-7526cab1><button data-v-7526cab1>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-1d113308 data-v-0640f721><div class="curtain" data-v-0640f721></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-0640f721><span class="visually-hidden" id="sidebar-aria-label" data-v-0640f721> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-0640f721><section class="VPSidebarItem level-0 collapsible has-active" data-v-0640f721 data-v-9a82e1d6><div class="item" role="button" tabindex="0" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><h2 class="text" data-v-9a82e1d6>Introduction</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-9a82e1d6><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-9a82e1d6><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-9a82e1d6><!--[--><div class="VPSidebarItem level-1 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/intro/why-ua-parser-js.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>Why UAParser.js</p><!--]--><!----></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" tabindex="0" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/intro/quick-start/quick-start.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><h3 class="text" data-v-9a82e1d6>Quick Start</h3><!--]--><!----></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-9a82e1d6><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-9a82e1d6><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-9a82e1d6><!--[--><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/intro/quick-start/using-html.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>Using HTML</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/intro/quick-start/using-node-js.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>Using Node.js</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/intro/quick-start/using-es-modules.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>Using ES Modules</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/intro/quick-start/using-typescript.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>Using TypeScript</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/intro/quick-start/using-jquery.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>Using jQuery</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/intro/extending-regex.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>Extending Regex</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-0640f721><section class="VPSidebarItem level-0" data-v-0640f721 data-v-9a82e1d6><div class="item" role="button" tabindex="0" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><h2 class="text" data-v-9a82e1d6>API Reference</h2><!----></div><div class="items" data-v-9a82e1d6><!--[--><section class="VPSidebarItem level-1 collapsible is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" tabindex="0" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/ua-parser-js/overview.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><h3 class="text" data-v-9a82e1d6>UAParser</h3><!--]--><!----></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-9a82e1d6><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-9a82e1d6><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-9a82e1d6><!--[--><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/ua-parser-js/overview.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>Overview</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/ua-parser-js/get-browser.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>getBrowser()</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/ua-parser-js/get-cpu.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>getCPU()</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/ua-parser-js/get-device.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>getDevice()</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/ua-parser-js/get-engine.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>getEngine()</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/ua-parser-js/get-os.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>getOS()</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/ua-parser-js/get-result.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>getResult()</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/ua-parser-js/get-ua.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>getUA()</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/ua-parser-js/set-ua.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>setUA()</p><!--]--><!----></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible collapsed" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" role="button" tabindex="0" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><h4 class="text" data-v-9a82e1d6>IData</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-9a82e1d6><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-9a82e1d6><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-9a82e1d6><!--[--><div class="VPSidebarItem level-3 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/idata/is.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>is()</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/idata/to-string.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>toString()</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/idata/with-client-hints.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>withClientHints()</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/idata/with-feature-check.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>withFeatureCheck()</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><!--]--></div></section></div><div class="group" data-v-0640f721><section class="VPSidebarItem level-0" data-v-0640f721 data-v-9a82e1d6><div class="item" role="button" tabindex="0" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><h2 class="text" data-v-9a82e1d6>Submodules</h2><!----></div><div class="items" data-v-9a82e1d6><!--[--><div class="VPSidebarItem level-1 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/submodules/enums.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>ua-parser-js/enums</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/submodules/extensions.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>ua-parser-js/extensions</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-9a82e1d6 data-v-9a82e1d6><div class="item" data-v-9a82e1d6><div class="indicator" data-v-9a82e1d6></div><a class="VPLink link link" href="/ua-parser-js/docs/v2/api/submodules/maps.html" data-v-9a82e1d6 data-v-40bbea7a><!--[--><p class="text" data-v-9a82e1d6>ua-parser-js/maps</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-1d113308 data-v-9d78bab4><div class="VPDoc has-sidebar has-aside" data-v-9d78bab4 data-v-39b3cdb2><!--[--><!--]--><div class="container" data-v-39b3cdb2><div class="aside" data-v-39b3cdb2><div class="aside-curtain" data-v-39b3cdb2></div><div class="aside-container" data-v-39b3cdb2><div class="aside-content" data-v-39b3cdb2><div class="VPDocAside" data-v-39b3cdb2 data-v-6d7b3c46><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-6d7b3c46 data-v-9bb6ddc9><div class="content" data-v-9bb6ddc9><div class="outline-marker" data-v-9bb6ddc9></div><div class="outline-title" data-v-9bb6ddc9>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-9bb6ddc9><span class="visually-hidden" id="doc-outline-aria-label" data-v-9bb6ddc9> Table of Contents for current page </span><ul class="root" data-v-9bb6ddc9 data-v-3e213931><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-6d7b3c46></div><!--[--><!--]--><div class="VPDocAsideCarbonAds" data-v-6d7b3c46><div class="VPCarbonAds" data-v-6e6a73ad></div></div><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39b3cdb2><div class="content-container" data-v-39b3cdb2><!--[--><!--]--><!----><main class="main" data-v-39b3cdb2><div style="position:relative;" class="vp-doc _ua-parser-js_docs_v2_intro_extending-regex" data-v-39b3cdb2><div><h1 id="extending-regex" tabindex="-1">Extending Regex <a class="header-anchor" href="#extending-regex" aria-label="Permalink to "Extending Regex""></a></h1><h2 id="write-your-own-extension" tabindex="-1">Write Your Own Extension <a class="header-anchor" href="#write-your-own-extension" aria-label="Permalink to "Write Your Own Extension""></a></h2><p>If you want to detect something that's not currently provided by UAParser.js (eg: bots, specific apps, etc), you can pass a list of regexes to extends internal UAParser.js regexes with your own.</p><ul><li><code>UAParser([uastring:string,] extensions:object [,headers:object])</code></li></ul><div class="language-js line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// Example:</span></span>
|
||
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> myOwnListOfBrowsers </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> [</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">/(</span><span style="color:#C3E88D;">mybrowser</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;">\/</span><span style="color:#89DDFF;">([</span><span style="color:#C3E88D;">\w</span><span style="color:#A6ACCD;">\.</span><span style="color:#89DDFF;">]+)/</span><span style="color:#F78C6C;">i</span><span style="color:#A6ACCD;">]</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> [UAParser</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">BROWSER</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">NAME</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> UAParser</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">BROWSER</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">VERSION</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">type</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">bot</span><span style="color:#89DDFF;">'</span><span style="color:#A6ACCD;">]]</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">]</span><span style="color:#89DDFF;">;</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> myUA </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">Mozilla/5.0 MyBrowser/1.3</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">;</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> myParser </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">new</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">UAParser</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">browser</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> myOwnListOfBrowsers </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#A6ACCD;">console</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">log</span><span style="color:#A6ACCD;">(myParser</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">setUA</span><span style="color:#A6ACCD;">(myUA)</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">getBrowser</span><span style="color:#A6ACCD;">())</span><span style="color:#89DDFF;">;</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">// {name: "MyBrowser", version: "1.3", major: "1", type : "bot"}</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">console</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">log</span><span style="color:#A6ACCD;">(myParser</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">getBrowser</span><span style="color:#A6ACCD;">()</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">is</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">bot</span><span style="color:#89DDFF;">'</span><span style="color:#A6ACCD;">))</span><span style="color:#89DDFF;">;</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">// true</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div><div class="language-js line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// Another example:</span></span>
|
||
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> myOwnListOfDevices </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> [</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">/(</span><span style="color:#C3E88D;">mytab</span><span style="color:#89DDFF;">)</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">([</span><span style="color:#C3E88D;">\w </span><span style="color:#89DDFF;">]+)/</span><span style="color:#F78C6C;">i</span><span style="color:#A6ACCD;">]</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> [UAParser</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">DEVICE</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">VENDOR</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> UAParser</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">DEVICE</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">MODEL</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> [UAParser</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">DEVICE</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">TYPE</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> UAParser</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">DEVICE</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">TABLET]]</span><span style="color:#89DDFF;">,</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">/(</span><span style="color:#C3E88D;">myphone</span><span style="color:#89DDFF;">)/</span><span style="color:#F78C6C;">i</span><span style="color:#A6ACCD;">]</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> [UAParser</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">DEVICE</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">VENDOR</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> [UAParser</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">DEVICE</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">TYPE</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> UAParser</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">DEVICE</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">MOBILE]]</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">]</span><span style="color:#89DDFF;">;</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> myUA2 </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">Mozilla/5.0 MyTab 14 Pro Max</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">;</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> myParser2 </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">new</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">UAParser</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">browser</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> myOwnListOfBrowsers</span><span style="color:#89DDFF;">,</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">device</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> myOwnListOfDevices</span></span>
|
||
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#A6ACCD;">console</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">log</span><span style="color:#A6ACCD;">(myParser2</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">setUA</span><span style="color:#A6ACCD;">(myUA2)</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">getDevice</span><span style="color:#A6ACCD;">())</span><span style="color:#89DDFF;">;</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">// {vendor: "MyTab", model: "14 Pro Max", type: "tablet"}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br></div></div><div class="info custom-block"><p class="custom-block-title">INFO</p><p>When custom regexes passed into <code>UAParser</code> constructor, they will be ordered <strong>before</strong> internal regexes, thus when the parser runs they will get checked first.</p></div><h2 id="use-predefined-extensions-submodule" tabindex="-1">Use Predefined Extensions Submodule <a class="header-anchor" href="#use-predefined-extensions-submodule" aria-label="Permalink to "Use Predefined Extensions Submodule""></a></h2><p>Some basic extensions (although not very complete at the moment) can also be found under <a href="/ua-parser-js/docs/v2/api/submodules/extensions.html"><code>ua-parser-js/extensions</code>↗</a> submodule.</p><div class="language-js line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// Usage example</span></span>
|
||
<span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">UAParser</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">ua-parser-js</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">;</span></span>
|
||
<span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">Emails</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">ua-parser-js/extensions</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">;</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> ua </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">;</span></span>
|
||
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> browser </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">new</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">UAParser</span><span style="color:#A6ACCD;">(Emails)</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">setUA</span><span style="color:#A6ACCD;">(ua)</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">getBrowser</span><span style="color:#A6ACCD;">()</span><span style="color:#89DDFF;">;</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#A6ACCD;">console</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">log</span><span style="color:#A6ACCD;">(browser</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">toString</span><span style="color:#A6ACCD;">())</span><span style="color:#89DDFF;">;</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">// Thunderbird 78.13.0</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br></div></div></div></div></main><footer class="VPDocFooter" data-v-39b3cdb2 data-v-10d8714f><!--[--><!--]--><div class="edit-info" data-v-10d8714f><div class="edit-link" data-v-10d8714f><a class="VPLink link edit-link-button" href="https://github.com/faisalman/ua-parser-js/tree/gh-pages/docs/v2/intro/extending-regex.md" target="_blank" rel="noreferrer" data-v-10d8714f data-v-40bbea7a><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-10d8714f><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-10d8714f><div class="pager" data-v-10d8714f><a class="pager-link prev" href="/ua-parser-js/docs/v2/intro/quick-start/using-jquery.html" data-v-10d8714f><span class="desc" data-v-10d8714f>Previous page</span><span class="title" data-v-10d8714f>Using jQuery</span></a></div><div class="has-prev pager" data-v-10d8714f><a class="pager-link next" href="/ua-parser-js/docs/v2/api/ua-parser-js/overview.html" data-v-10d8714f><span class="desc" data-v-10d8714f>Next page</span><span class="title" data-v-10d8714f>UAParser</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-1d113308 data-v-c7eeb802><div class="container" data-v-c7eeb802><p class="message" data-v-c7eeb802>Licensed under the MIT License.</p><p class="copyright" data-v-c7eeb802>Copyright © 2012-2023 Faisal Salman</p></div></footer><!--[--><!--]--></div></div>
|
||
<script>__VP_HASH_MAP__ = JSON.parse("{\"api_submodules_extensions.md\":\"af715bdb\",\"api_submodules_enums.md\":\"67d01874\",\"api_submodules_maps.md\":\"ae1e54e0\",\"api_ua-parser-js_set-ua.md\":\"8907efd2\",\"api_ua-parser-js_overview.md\":\"1d0cad56\",\"api_ua-parser-js_get-ua.md\":\"0fa9fd7f\",\"api_ua-parser-js_get-browser.md\":\"f4df1518\",\"intro_quick-start_using-html.md\":\"c26425e5\",\"intro_quick-start_using-typescript.md\":\"c1578797\",\"api_ua-parser-js_get-result.md\":\"f65ecd4a\",\"index.md\":\"9cfed7b9\",\"api_idata_to-string.md\":\"20eaa222\",\"api_ua-parser-js_get-cpu.md\":\"b4ef11dc\",\"intro_quick-start_quick-start.md\":\"3fcc54ad\",\"intro_quick-start_using-jquery.md\":\"a8bfabfc\",\"intro_quick-start_using-es-modules.md\":\"add772ad\",\"api_ua-parser-js_get-os.md\":\"71bcb7f0\",\"api_ua-parser-js_get-engine.md\":\"93357cf9\",\"intro_extending-regex.md\":\"83598a7d\",\"api_idata_with-feature-check.md\":\"6b15066b\",\"api_idata_is.md\":\"e021670c\",\"intro_why-ua-parser-js.md\":\"b5f993b6\",\"api_idata_with-client-hints.md\":\"ed97926a\",\"api_ua-parser-js_get-device.md\":\"f2518671\",\"intro_quick-start_using-node-js.md\":\"d0e3ffe9\"}")
|
||
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"UAParser.js\",\"titleTemplate\":\"Detect Browser, OS, CPU, & Device with JavaScript\",\"description\":\"Detect Browser, OS, CPU, & Device with JavaScript\",\"base\":\"/ua-parser-js/docs/v2/\",\"head\":[],\"appearance\":\"dark\",\"themeConfig\":{\"logo\":\"/images/logo.png\",\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"2.0.0-alpha\",\"items\":[{\"text\":\"Changelog\",\"link\":\"https://github.com/faisalman/ua-parser-js/blob/master/changelog.md\"},{\"text\":\"Contributing\",\"link\":\"https://github.com/faisalman/ua-parser-js#development\"}]}],\"sidebar\":[{\"text\":\"Introduction\",\"collapsed\":false,\"items\":[{\"text\":\"Why UAParser.js\",\"link\":\"/intro/why-ua-parser-js\"},{\"text\":\"Quick Start\",\"link\":\"/intro/quick-start/quick-start\",\"collapsed\":true,\"items\":[{\"text\":\"Using HTML\",\"link\":\"/intro/quick-start/using-html\"},{\"text\":\"Using Node.js\",\"link\":\"/intro/quick-start/using-node-js\"},{\"text\":\"Using ES Modules\",\"link\":\"/intro/quick-start/using-es-modules\"},{\"text\":\"Using TypeScript\",\"link\":\"/intro/quick-start/using-typescript\"},{\"text\":\"Using jQuery\",\"link\":\"/intro/quick-start/using-jquery\"}]},{\"text\":\"Extending Regex\",\"link\":\"/intro/extending-regex\"}]},{\"text\":\"API Reference\",\"items\":[{\"text\":\"UAParser\",\"collapsed\":false,\"link\":\"/api/ua-parser-js/overview\",\"items\":[{\"text\":\"Overview\",\"link\":\"/api/ua-parser-js/overview\"},{\"text\":\"getBrowser()\",\"link\":\"/api/ua-parser-js/get-browser\"},{\"text\":\"getCPU()\",\"link\":\"/api/ua-parser-js/get-cpu\"},{\"text\":\"getDevice()\",\"link\":\"/api/ua-parser-js/get-device\"},{\"text\":\"getEngine()\",\"link\":\"/api/ua-parser-js/get-engine\"},{\"text\":\"getOS()\",\"link\":\"/api/ua-parser-js/get-os\"},{\"text\":\"getResult()\",\"link\":\"/api/ua-parser-js/get-result\"},{\"text\":\"getUA()\",\"link\":\"/api/ua-parser-js/get-ua\"},{\"text\":\"setUA()\",\"link\":\"/api/ua-parser-js/set-ua\"},{\"text\":\"IData\",\"collapsed\":true,\"items\":[{\"text\":\"is()\",\"link\":\"/api/idata/is\"},{\"text\":\"toString()\",\"link\":\"/api/idata/to-string\"},{\"text\":\"withClientHints()\",\"link\":\"/api/idata/with-client-hints\"},{\"text\":\"withFeatureCheck()\",\"link\":\"/api/idata/with-feature-check\"}]}]}]},{\"text\":\"Submodules\",\"items\":[{\"text\":\"ua-parser-js/enums\",\"link\":\"/api/submodules/enums\"},{\"text\":\"ua-parser-js/extensions\",\"link\":\"/api/submodules/extensions\"},{\"text\":\"ua-parser-js/maps\",\"link\":\"/api/submodules/maps\"}]}],\"socialLinks\":[{\"icon\":{\"svg\":\"<svg color=\\\"#fff\\\" role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><title>GitHub</title><path d=\\\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\\\"/></svg>\"},\"link\":\"https://github.com/faisalman/ua-parser-js\"},{\"icon\":{\"svg\":\"<svg color=\\\"#CB3837\\\" role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><title>npm</title><path d=\\\"M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z\\\"/></svg>\"},\"link\":\"https://www.npmjs.com/package/ua-parser-js\"},{\"icon\":{\"svg\":\"<svg color=\\\"#7FADF2\\\" role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><title>Open Collective</title><path d=\\\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12c2.54 0 4.894-.79 6.834-2.135l-3.107-3.109a7.715 7.715 0 1 1 0-13.512l3.107-3.109A11.943 11.943 0 0 0 12 0zm9.865 5.166l-3.109 3.107A7.67 7.67 0 0 1 19.715 12a7.682 7.682 0 0 1-.959 3.727l3.109 3.107A11.943 11.943 0 0 0 24 12c0-2.54-.79-4.894-2.135-6.834z\\\"/></svg>\"},\"link\":\"https://opencollective.com/ua-parser-js\"},{\"icon\":{\"svg\":\"<svg color=\\\"#5B0BB5\\\" role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><title>Demo</title><path d=\\\"M12 0a1.44 1.44 0 0 0-.947.399L.547 10.762a1.26 1.26 0 0 0-.342.808v11.138c0 .768.53 1.292 1.311 1.292h20.968c.78 0 1.311-.522 1.311-1.292V11.57a1.25 1.25 0 0 0-.34-.804L15.68 3.097h-.001L12.947.4A1.454 1.454 0 0 0 12 0Zm0 6.727 6.552 6.456v5.65H5.446v-5.65z\\\"/></svg>\"},\"link\":\"https://faisalman.github.io/ua-parser-js\"}],\"carbonAds\":{\"code\":\"your-carbon-code\",\"placement\":\"your-carbon-placement\"},\"footer\":{\"message\":\"Licensed under the MIT License.\",\"copyright\":\"Copyright © 2012-2023 Faisal Salman\"},\"lastUpdatedText\":\"Updated Date\",\"editLink\":{\"pattern\":\"https://github.com/faisalman/ua-parser-js/tree/gh-pages/docs/v2/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
|
||
|
||
</body>
|
||
</html> |