JavaScript String.replace関数パラメータ説明

1088 ワード

Email:longsu 2010 at yeah dot net
js Stringのreplace関数の署名は以下の通りです.
replace(match/*文字列OR正規表現*/replacment/*文字列OR関数*/)
文字列からのmatchをreplaccementに置き換え、置換後の文字列を返す役割を果たします.
最初のパラメータが文字列であれば何も言いませんが、このときは、match関数を元の文字列に置き換えるだけで実行されます.
したがって、第1のパラメータは、通常は正規表現であり、例えば、以下のようになる.
replace(/a/g,"b")//は、文字列から生じるすべてのaをbに置き換える.
第二パラメータは、たとえば、次のような第一パラメータ正規表現のパケットを含む文字列とすることができます.
replace(/(a){2,2}/g、「$1 b」)//は、文字列から生じるすべてのaをabに置き換える.
二番目のパラメータが関数なら、関数のパラメータは何ですか?以下の例を示します
"bbabc".replace(/(a)(b)/g, function(){
	console.log(arguments)
});
パラメータは、次の通りです.
1、正規表現全体にマッチする文字.
2、第1のパケットがマッチングしたコンテンツ、第2のパケットがマッチングしたコンテンツ…これを最後のグループに類推する.
3、今回のマッチは、文字列からの下付き(位置)です.
4、由来文字列
だから例の出力は
[a b]、「a」、「b」、2、「bbbbbc」]
第2のパラメータの戻り値は、元の文字列に置き換えられます.js関数に戻り値がないと、呼び出し関数はundefinedを得るので、第2のパラメータが戻り値がない場合はundefinedが元の文字列に置き換えられます.
第一パラメータが文字列であり、第二パラメータが関数である場合は、第一パラメータとしてパケットがない正規表現として扱われ、第二パラメータのパラメータを決定することができます.
文の中には、「元の文字列に置き換える」(文字列がテンプレートとしての役割を果たしているだけで、本当に変更されていません.文字列は変更できない変数です.)というような不適切な表現があります.