title: Detect phone/tablet/web client using javascript
body: <p>I am trying to detect if the end user is on a phone, a tablet or a pc</p>
  
  <p>I have been Googling for a while, apparently there are no easy solution.</p>
  
  <p>Well I guess I should not use Resolution, since nowadays some tablets have amazing resolutions.</p>
  
  <p>I should not rely on orientation, because windows8 laptops can just rotate like tablets.
  (and responsive design is just too difficult for my current project)</p>
  
  <p>I've been trying to use UserAgent(thought it has its drawbacks too), but can not get it working, below is a conjunction of different versions online that I am using to distinguish phone/tablet from PCs, they just do not work and I have no idea why</p>
  
  <pre><code>var agents = ['android', 'webos', 'iphone', 'ipad', 'blackberry','iemobile','phone','mobile'];
                  for(i in agents) {
                      if(navigator.userAgent.toLowerCase().match('/'+agents[i]+'/i')) {
                          return true;
                      }
                  }
  
  
  if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
                  return true;
              }
  
   if( navigator.userAgent.match(/Android/i)
                   || navigator.userAgent.match(/webOS/i)
                   || navigator.userAgent.match(/iPhone/i)
                   || navigator.userAgent.match(/iPad/i)
                   || navigator.userAgent.match(/iPod/i)
                   || navigator.userAgent.match(/BlackBerry/i)
                   || navigator.userAgent.match(/Windows Phone/i)
                   || navigator.userAgent.match(/bada/i)
                   || navigator.userAgent.match(/Bada/i)
                   ){
                  return true;
              }
  </code></pre>