>> JavaScript入門トップに戻る
今回は正規表現が使える非常に便利なreplace関数について説明します。
使うときは、
文字列変数.replace(正規表現,変換文字列);
のようにして使います。
つまり正規表現にマッチしたものを、変換文字列に置き換えて戻り値として返してくれるわけです。
下のコードを見てください。
↑押してみてください。
「アルファベットだけ抜き出しました→ABCDE」と表示されたと思います。
replace関数の第一引数を見てください。
正規表現の詳しい説明は省きますが、
アルファベットの部分だけ()でグループ化しています。
replace関数ではこのグループ化した部分を、第二引数で「$数字」で表すことが出来ます。
グループ化が二つあれば、$1、$2、と増えていくだけです。
今回は、"アルファベットだけ抜き出しました→$1"と書くと、
$1の部分が「ABCDE」に置き換わり、戻り値として返してくれるわけです。
一回の処理でこれだけのことが出来るのは非常に便利ですよね?
さらに、replace関数の第二引数には関数を渡すことも可能です。
↑押してみてください。「ABCDEだけ抜き出しました。」と表示されましたよね?
replace関数の第二引数にはParse関数を渡しています。
これでマッチした内容がParse関数に渡されて自由に処理することが可能になります。
この時、Parse関数の第一引数はreplace関数でマッチした全体を指します。
第二引数は、replace関数でグループ化したものを指します。
つまり今回の場合だと、
aには、マッチした全体【あいうえお12345ABCDE6789】が入っていて、
bには、グループ化した【ABCDE】が入っているというわけです。
そして、関数で処理したものをreturnで返します。
こうすることで、temp変数にその結果が代入される、という流れになっています。
今回は「だけ抜き出しました」という文字列しかくっつけてませんが。
理解できましたでしょうか?
複雑な処理は関数を使ったほうが便利なので是非活用しましょう。
>> JavaScript入門トップに戻る
正規表現【replace関数】
使うときは、
文字列変数.replace(正規表現,変換文字列);
のようにして使います。
つまり正規表現にマッチしたものを、変換文字列に置き換えて戻り値として返してくれるわけです。
下のコードを見てください。
function CheckTest3() { str="あいうえお12345ABCDE6789"; var temp=str.replace(/[^A-Z]+([A-Z]+)\d+/g,"アルファベットだけ抜き出しました→$1"); alert(temp); }
↑押してみてください。
「アルファベットだけ抜き出しました→ABCDE」と表示されたと思います。
replace関数の第一引数を見てください。
正規表現の詳しい説明は省きますが、
アルファベットの部分だけ()でグループ化しています。
replace関数ではこのグループ化した部分を、第二引数で「$数字」で表すことが出来ます。
グループ化が二つあれば、$1、$2、と増えていくだけです。
今回は、"アルファベットだけ抜き出しました→$1"と書くと、
$1の部分が「ABCDE」に置き換わり、戻り値として返してくれるわけです。
一回の処理でこれだけのことが出来るのは非常に便利ですよね?
さらに、replace関数の第二引数には関数を渡すことも可能です。
function CheckTest4(){ str="あいうえお12345ABCDE6789"; var temp=str.replace(/[^A-Z]+([A-Z]+)\d+/g,Parse); alert(temp); } function Parse(a,b){ return b+"だけ抜き出しました。"; }
↑押してみてください。「ABCDEだけ抜き出しました。」と表示されましたよね?
replace関数の第二引数にはParse関数を渡しています。
これでマッチした内容がParse関数に渡されて自由に処理することが可能になります。
この時、Parse関数の第一引数はreplace関数でマッチした全体を指します。
第二引数は、replace関数でグループ化したものを指します。
つまり今回の場合だと、
aには、マッチした全体【あいうえお12345ABCDE6789】が入っていて、
bには、グループ化した【ABCDE】が入っているというわけです。
そして、関数で処理したものをreturnで返します。
こうすることで、temp変数にその結果が代入される、という流れになっています。
今回は「だけ抜き出しました」という文字列しかくっつけてませんが。
理解できましたでしょうか?
複雑な処理は関数を使ったほうが便利なので是非活用しましょう。
>> JavaScript入門トップに戻る