• ベストアンサー

JavaScript 正規表現の()

こんにちは。 趣味でプログラミングをしているものです。 さっそくですが質問させていただきます。 var regexp = /^(?:button|input)$/i ; という定義がある場合(コロンもついています)、 その意味を教えてほしいのですが それと() その内部の? : についても 解説していただけないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

一度正規表現についてなにか参考書のようなものを読んだ方がいいでしょう。 <script> var str="button"; alert(str.match(/^(?:button|input)$/i)[0]); alert(str.match(/^(?:button|input)$/i)[1]); alert(str.match(/^(button|input)$/i)[0]); alert(str.match(/^(button|input)$/i)[1]); alert(str.match(/^button|input$/i)[0]); alert(str.match(/^button|input$/i)[1]); </script> javascriptにおける正規表現は、マッチした値を配列としてもどします。 かっこで囲むと、マッチした値を1番目の要素に確認します。 (ちなみに、複数の括弧で囲むと2,3,4・・・と戻り値が増えていきます。) ただ、都合上、括弧でかこんでも1番目の要素を返したくない場合があります そのようなときに利用するのが(?:・・・)です 今回のケースだとかっこ自体を表記しなくても同じ結果がえられます

noname#173931
質問者

お礼

回答していただきありがとうございます。 お礼が遅れてしまいもうしわけありません。 解説していただけた内容と、 web上の正規表現のグループ化、後方参照に関する記事 http://www.web3d-club.net/jikken/JavaScript/regexp/group.htm によって、以前よりも理解を深めることができました。 web上の記事では、?:の使い方の解説が 見つからなかったのですが、 ?:を使った実例をひとつだけでも示していただけないでしょうか? amazonで正規表現の本を検索してみたら数千円するものが多かったので どうしようか迷っているのですが・・・ とにかく、貴重な時間をさいての回答、ありがとうございました。

関連するQ&A