Visit Mozilla.org

Core JavaScript 1.5 Guide:Working with Regular Expressions:Using Parenthesized Substring Matches

出典: MDC


[編集] 括弧で囲まれた部分文字列のマッチの使用

正規表現パターンに括弧を含めることで、対応するサブマッチが記憶されます。例えば、/a(b)c/ は 'abc' という文字列にマッチし、'b' が記憶されます。この括弧で囲まれた部分文字列のマッチは、配列の要素 [1], ..., [n] を使用して呼び戻すことができます。

括弧で囲まれた部分文字列は何個でも使用できます。返された配列にはその見つかったものすべてが存在します。以下の例では括弧で囲まれた部分文字列の使用法を説明します。

例 1
次のスクリプトでは replace メソッドを使用して文字列中の単語を入れ替えます。置き換えるテキストについては、スクリプトは $1$2 を使用して、最初とその次の括弧で囲まれた部分文字列のマッチを示しています。

<script type="text/javascript">
 re = /(\w+)\s(\w+)/;
 str = "John Smith";
 newstr = str.replace(re, "$2, $1");
 document.write(newstr);
</script>

これは "Smith, John" を出力します。

例 2
注意:getInfo 関数では Firefox 以外のほとんどのブラウザでは動作しない () という省略記法を使用して exec メソッドが呼び出されます。

<html>

<script type="text/javascript">
 function getInfo(field){
   var a = /(\w+)\s(\d+)/(field.value);
   window.alert(a[1] + ", your age is " + a[2]);
 }
</script>

Enter your first name and your age, and then press Enter.

<form>
  <input type="text" name="NameAge" onchange="getInfo(this);">
</form>

</html>


« »