indexOf !=-1の意味

このQ&Aのポイント
  • Javascriptのブラウザ判別のコードで分からない所があります。
  • indexOfメソッドで文字列を検索した値がマイナス1ではない時というのはどういう意味ですか?
  • ブラウザが何か情報を持っているのでしょうか?-1は何々、0は何々、1は何々と。
回答を見る
  • ベストアンサー

indexOf !=-1の意味

Javascriptのブラウザ判別のコードで分からない所があります。 以下のindexOf !=-1 の部分ですが、indexOfメソッドで文字列を検索した値がマイナス1ではない時というのはどういう意味ですか? ブラウザが何か情報を持っているのでしょうか? -1は何々、0は何々、1は何々と。 <!DOCTYPE html> <html><head> ~省略~ <title></title> <style type="text/css"> <!-- body { background-color: #ffffff; } --> </style> </head> <body> <p> <script type="text/javascript"> <!-- if(Firefox_Moz){ if(UA.indexOf("Firefox") != -1){document.write("Firefox")} else{document.write("Mozilla")} } //--> </script> </p> </body></html>

質問者が選んだベストアンサー

  • ベストアンサー
  • byDesign
  • ベストアンサー率75% (45/60)
回答No.1

indexOfの戻り値は、検索した文字が最初に見つかった位置を返します。 また、文字が見つからなかった場合は-1を返します。 indexOf !=-1は、検索文字があるか判定しています。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf "aiueo".indexOf("ai")の場合先頭に一致するので戻り値は0(先頭は1では無く0から数えます) "aiueo".indexOf("iue")の場合2番目に一致するので戻り値は1 "aiueo".indexOf("kkk")の場合一致しないので戻り値は-1

KAIJI-000
質問者

補足

すみません、親切に回答有難うございます。ブラウザがどうのこうのじゃないんですね。 分かりやすかったです。

関連するQ&A

  • useless setTimeout cal 

    すみません。教えて下さい。 下のコードを書いて、動きはするんですが、実行後に 「useless setTimeout cal」というエラーが出てしまいます。 エラーを回避したいのですが、どうすればいいのでしょうか。 IE6/IE8/firefox3.6 などで試しました *********************************** <html> <head> <script type = 'text/javascript'> function item(){ var i = 0; write(); function write(){ document.write(i+"<br>"); i ++; if(i<10){setTimeout(write(),100);} } } </script> </head> <body> <script type = 'text/javascript'>item();</script> </body> <html> ***********************************

  • ブラウザで表示を変更

    <SCRIPT TYPE="text/javascript"> <!-- if (navigator.userAgent.indexOf("MSIE")!="-1"){//for IE document.write("インターネットエクスプローラー"); } else { document.write("別ブラウザ"); } //--> </SCRIPT> 上記JavaScriptと同じように、インターネットエクスプローラーとそれ以外のブラウザで表示させるメッセージを変えたいのですが、どのように書けばいいのでしょうか。

    • ベストアンサー
    • Perl
  • JavaScript document.write 「更新」すると動作しない

    JavaScriptを組み込んだサイトを作成しました。 自宅には2台PCがあり、パソコンAのブラウザーはFirefox3.5.3とIE7。 パソコンBのブラウザーはFirefox3.0.13とIE6.02900.5512 xpsp sp3です。 パソコンBのブラウザーで動かすとJavaScriptが正常に動きます。 更新ボタンを押しても正常です。 一方、パソコンAでは、一番最初にPCを起動してブラウザを立ち上げた時は正常に動作しますが、「更新」をすると、下記プログラムの <SCRIPT LANGUAGE=JavaScript1.2>document.write(ABC);</script> のdocument.write(ABC)を読み込んでくれなくなります。 ※下記の例で説明すると「あいうえお」という表示が出なくなります。 なお、document.write(ABC)のABCは、<SCRIPT SRC="http://XXXXXX.XXXX/XXXXX/XXXX.js"></SCRIPT>に格納してあります。(下記参照) 何が原因かご教示いただけますでしょうか? m(_ _)m よろしくお願い致します。 ------------------------------------------------ ◆本文 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> <SCRIPT src="http://XXXXXX.XXXX/XXXXX/XXXX.js"></SCRIPT> </HEAD> <BODY><SCRIPT language="javascript">document.write(ABC);</SCRIPT></BODY> </HTML> ------------------------------------------------ ◆http://XXXXXX.XXXX/XXXXX/XXXX.js の中身 var ABC=' <b>あいうえお</b>';

  • macでjavascriptを記述するにはどのようにすればよろしでしょうか?

    使用PCはmacで テキストエディターに --------------------------- <html> <head> <title>sample001</title> </head> <body> <script type="text/javascript"> document.write("「こんにちは」"); </script> </body> </html> --------------------------- 上記のjavascriptを書きfirefoxで確認したのですが タグ全て表示されてしまいます 本来、画面に「こんにちは」しか表示されないはずなのですが どのようにすればjavascriptをmacで使えますでしょうか? ご存知の方いましたら教えてください。 お願いします。

  • JavaScriptのコードの間違いを教えて

    いつもお世話になっております。 現在、JavaScriptの勉強をしているのですが、if構文のところでつまずいてしまいした。 下のコードがうまく実行できません。 間違いを指摘して頂ければと思います。 <doctype! html> <html lang="ja"> <head>    <meta charset="UTF-8">    <title>Javascript</title> </head> <body> <script type="text/javascript">    var x = window.prompt("好きな値を入力してください","100");    if (x>100)       {window.document.write("100より大きいです");}    else {if(x<100))       {window.document.write("100より小さいです");}       else {if(x=100))          {window.document.write("100です");}       }    } </script> </body> </html> なお、テキストエディタで記述し、実行はGoogleChromeで行いました。 よろしくお願いします。

  • どこが動作しない原因かわかりません><

    なぜに動かないかわかりません・・・ ずっとチェックしているのですがどうも動かず>< 下に打ち込んだものを記載します><アドバイス是非お願いします>< ----------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>sample</title> <script type ="text/javascript"> <!-- var linkExp = new Array("1","2","3","4","5","6"); var now = new Date(); var r = now.getDay(); //--> </script> </head> <body> <script type="text/javascript"> <!--if(r==0){document.write(linkExp[0]);}eles{ if(r==1){document.write(linkExp[1]);}eles{ if(r==2){document.write(linkExp[2]);}eles{ if(r==3){document.write(linkExp[3]);}eles{ if(r==4){document.write(linkExp[4]);}eles{ if(r==5){document.write(linkExp[5]);}eles{ if(r==6){document.write(linkExp[6]);}eles{ document.write("何曜日なの???"); }}}}}}} //--> </script> </body> </html> ---------------------------- というものを打ち込みました。 したいこととしては、曜日情報を取得し、それを特定の情報で置き換えるということをしたいと思っております。

  • <HTML>文章をメモ帳に書いてブラウザに変えても変わって表示されません。

    <html> <head>               <title>プログラム例</title>  </head>                   <body> <script type="text/javascript"> docment.write("<hr>"); docment.write("<h1>hello<h1>"); docment.write("<hr>"); </script> </script> </body> </html> これをメモ帳に書いてブラウザに切り替えるとhelloってブラウザ上に出るのですが、全然まったく変わりません。 そのまんまの通りに出てしまいます。 なんでこうなってしまうのかわかりません。どうが教えてください

  • Netscape navigator.appNam

    <html> <head> <title>test</title> </head> <script type ="text/javascript"> document.write("ブラウザ名:"+navigator.appName); </script> </body> </html> を実行すると 返り値がNetscapeになります。 IE11でもグーグルクロームでも同じ結果です。 なぜ、Netscapeなのでしょうか? IEやグーグルクロームが返ってくると思ってました。

  • オブジェクトが存在しない

    というエラーが次のhtmlファイルをブラウザで表示させようとするとでます if(document.form0.title!=null) で判断しているだけでだめみたいです そしたらdocument.form0.titleが存在するかどうかをエラーなしで判断させる方法はあるのでしょうか? <HTML> <HEAD> <script type='text/javascript'> <!-- function FormFocus() {  if(document.form0.title!=null)document.form0.title.focus(); } // --> </script> </HEAD> <body onload='javascript:FormFocus()'> <form name='form0'></form> </BODY> </HTML>

  • ブラウザのサイズ取得がXHTMLにするとうまくいか

    http://www.tagindex.com/javascript/user/area.html に ブラウザのサイズ取得のサンプルが載ってます。 <html> <head> <title>TAG index Webサイト</title> </head> <body> <script type="text/javascript"> <!-- if(document.all){ // IE用 document.write('<p>横のサイズ:<strong>' + document.body.clientWidth + '</strong><br>'); document.write('縦のサイズ:<strong>' + document.body.clientHeight + '</strong></p>'); } else{ document.write('<p>横のサイズ:<strong>' + innerWidth + '</strong><br>'); document.write('縦のサイズ:<strong>' + innerHeight + '</strong></p>'); } // --> </script> </body> </html> です。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> にすると、IE8で高さが小さな値しかでません。 しかし、紹介したページはただの<html>でないのに、 正しい値が出力されています。 何が足りないのでしょうか。 <p>・・・</p> を2スクロール分入れたら、今度が大きすぎる値が出力されてしまいました。 困っております。どうか助けてください。お願いします。