JavaScript には、文字列内の単語、数値、またはその他の文字列を検索するためのいくつかの手法が用意されています。たとえば、訪問者がサイトの閲覧にどの Web ブラウザを使用しているかを知りたい場合は、検索が便利です。各 Web ブラウザは、さまざまな統計を含む文字列でそれ自体に関する情報を識別します。この文字列は、次の JavaScript を Web ページに追加し、Web ブラウザでプレビューすると確認できます:
<script> alert(navigator.userAgent); </script>
Navigator は Web ブラウザ オブジェクトであり、userAgent は navigator オブジェクトのプロパティです。 userAgent 属性には、長い情報リストが含まれています。たとえば、Windows XP 上で実行されている Internet Explorer 7 の場合、userAgent 属性は Mozilla/4.0 (互換性、MSIE 7.0、Windows NT 5.1) です。したがって、Web ブラウザが IE 7 かどうかを確認したい場合は、userAgent 文字列で「MSIE 7」を検索するだけです。文字列を検索する方法の 1 つは、indexOf() メソッドです。文字列の後にピリオドを追加してから、indexOf() を追加し、探している文字列を指定します。基本的な構造は次のとおりです:
string.indexOf('検索する文字列')
indexOf() メソッドは数値を返します。検索文字列が見つからない場合、メソッドは -1 を返します。 Internet Explorer をチェックしたい場合は、次のようにすることができます:
var browser=navigator.userAgent;//this is a string if(browser.indexOf('MSIE')!=-1){ //this is Internet Explorer }
この例では、indexOf() が userAgent 文字列で 'MSIE' を見つけられない場合、-1 を返すため、条件は結果が (!=) -1 に等しくないかどうかをテストします。 IndexOf() メソッドは、検索している文字列を見つけると、検索している文字列の先頭に等しい数値を返します。次の例は、状況をもう少し明確にします:
var quote='To be, or not to be.' var searchPosition=quote.indexOf('To be');//returns 0
ここで、indexOf() は、文字列「To be, or not to be」内の「To be」の位置を検索します。大きい文字列は「To be」で始まるため、indexOf() は最初の位置で「To be」を見つけます。ただし、プログラム方法では、最初の位置は 0、2 番目の文字 (o) は位置 1、3 番目の文字 (この例ではスペース) は 2 とみなされます。
indexOf() メソッドは文字列の先頭から検索を開始します。 lastIndexOf() メソッドを使用して、文字列の末尾から検索を開始することもできます。たとえば、シェイクスピアの引用では、「be」という単語が 2 か所に出現するため、indexOf() を使用して最初の「be」を検索し、lastIndexOf() を使用して最後の「be」を検索できます。
var quote="To be, or not to be." var firstPosition=quote.indexOf('be');//returns 3 var lastPosition=quote.lastIndexOf('be');//returns 17
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。