iPhone/iPadのiOSバージョンをJavaScriptで判別する

iPhone/iPadのiOSバージョンをJavaScriptで判別する

参考元: iOSのバージョンを判定する
上記を参考に、iPhoneのみ対応していたのをiPadに対応。

例として、iOS6以上とiOS5以前でCSSを分ける場合。
※正味な話、<input type=”file” /> 周りが主な対応。

var ua = navigator.userAgent;
if(/iPhone/.test(ua)) {
	ua.match(/iPhone OS (\w+){1,3}/g);
	var iosv=(RegExp.$1.replace(/_/g, '')+'00').slice(0,3);
	if(iosv >= 600) {
		//iPhone iOS6 Over
		document.write('');
	} else {
		//iPhone iOS6 Under
		document.write('');
	}
} else if(/iPad/.test(ua)) {
	ua.match(/CPU OS (\w+){1,3}/g);
	var iosv=(RegExp.$1.replace(/_/g, '')+'00').slice(0,3);
	if(iosv >= 600) {
		//iPad iOS6 Over
		document.write('');
	} else {
		//iPad iOS6 Under
		document.write('');
	}
}

解説

基本的に参考元の記事と同内容ではありますが

  1. UA中からまずiPhoneかiPadかを判別。
  2. UA内の「OS 6_0_1」といった箇所を抜き出し、「601」といった3桁に変換。
    ※「5_2」 など2桁になりうる場合は「520」と3桁になるようゼロ詰め。
  3. バージョン数を見て数値以上・未満で振り分け。

筆者について

KaBuKi
ゲームとジョジョを愛するファミッ子世代。好きな言葉は「機能美」。
公私ともにWebサービスを作る系男子。