第73回 「Internet Explorerのバージョンを別の方法で判別する」
			
			 前回はInternet Explorerのバージョンを抜き出すプログラムを作成しました。
			 今回は前回のプログラムとは別の方法でバージョンを抜き出す方法を説明します。
			 何かしたい場合に答えは1つではないので、いろいろな方法を考えてみると勉強になります。
			
			 まず、Internet Explorer 6が返すuserAgentの文字列は以下のようになっています。
			
			Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
			
			 前回はMSIEから;に続く部分を抜き出しました。この文字列をよく見ると半角空白で区切られています。半角空白ごとに分割してバージョン部分だけ抜き出せば簡単です。半角空白で分割するにはsplit()を使います。分割された結果は配列として返されます。バージョン部分は4番目になるので配列の4番目を見ればよいことになります。数値として返したい場合にはeval()またはparseFloat()を使います。
			 実際のプログラムは以下のようになります。
			
			
			<html>
			<head>
			<title></title>
			<script language="JavaScript"><!--
			// Internet Explorerのバージョンを返します
			function getVersion()
			{
				var uName = navigator.userAgent;
				str = uName.split(" ");
				return eval(str[3]);
			}
			// --></script>
			</head>
			<body>
			<form>
			<input type="button" value="チェック" onClick="alert(getVersion())">
			</form>
			</body>
			</html>
			
			
			 次に前回少し書きましたが正規表現を使ってもバージョンを取得することができます。バージョン部分は以下の文字の組み合わせで構成されています。
			
			数値.数値
			数値.数値 数値
			
			 これは4.0とか5.23といった具合になります。つまりuserAgentの文字列の中から、このパターンを抽出すればバージョンを取得できることになります。しかし、userAgentの文字列をよく見ると先頭部分にMozilla/4.0という文字があり、この4.0も上記パターンと同じです。そこでバージョン部分を示す数値の前に半角空白があるのを利用して「半角空白ではじまり数値.数値」または「半角空白ではじまり数値.数値 数値」の組み合わせをバージョン番号とします。
			 正規表現では半角空白は\ で表現します。円記号の後に半角空白を入れます。数値は0〜9になるので[0-9]と表現します。.(ピリオド)は\.のように円記号の後に.(ピリオド)を書きます。数値が1個以上続く場合は+を付けます。
			 正規表現でマッチした場合に結果は配列で返されます。一番最初の配列に入っている値がバージョンになりますのでeval()かparseFloat()を使って数値に変換します。
			 実際のプログラムは以下のようになります。
			
			
			<html>
			<head>
			<title></title>
			<script language="JavaScript"><!--
			// Internet Explorerのバージョンを返します
			function getVersion()
			{
				var uName = navigator.userAgent;
				str = uName.match(/\ [0-9]\.[0-9]+/);
				return eval(str[0]);
			}
			// --></script>
			</head>
			<body>
			<form>
			<input type="button" value="チェック" onClick="alert(getVersion())">
			</form>
			</body>
			</html>
			
			
			 次回はMacOS XのブラウザSafariのバージョンを判別します。