Email:longsu2010 atYeah dot net
js String の replace 関数の関数シグネチャは次のとおりです:
replace(match/* string OR 正規表現*/, replace/* string OR function*/)
関数は、文字列内の一致を replace で置き換え、置き換えられた文字列を返すことです。
最初のパラメータが文字列の場合は何も言うことはありませんが、文字列が置換されるときに match (first) 関数が 1 回だけ実行されることに注意してください。
したがって、最初のパラメータは通常、次のような正規表現になります。
replace(/a/g, "b") // 文字列内のすべての a を b に置き換えます。
2 番目のパラメータは文字列にすることができ、最初のパラメータの正規表現のグループ化を含めることができます。例:
replace(/(a){2,2}/g, "$1 b") // 文字列内のすべての aa を ab に置き換えます。
2 番目のパラメーターが関数の場合、関数のパラメーターは何ですか?例:
"bbabc".replace( /(a )(b)/g, function(){
console.log(arguments)
});
パラメータは次のようになります: 1 、正規表現全体と一致する文字。
2. 最初のグループに一致したコンテンツ、2 番目のグループに一致したコンテンツ...というように最後のグループまで続きます。
3. ソース文字列内のこの一致の添字 (位置)。
4. 文字列
から派生するため、例の出力は
["ab", "a", "b", 2, "bbabc"]
2番目 パラメーターの戻り値はソース文字列で置き換えられます。js 関数に戻り値がない場合、関数を呼び出すと未定義になるため、2 番目のパラメーターに戻り値がない場合は、未定義がソース文字列で置き換えられます。ソース文字列。
最初のパラメータが文字列で、2 番目のパラメータが関数の場合は、最初のパラメータがグループ化されていない正規表現として扱われるため、2 番目のパラメータのパラメータを決定できます。
記事中に「ソース文字列への置き換え」(ソース文字列はテンプレートとして機能するだけで実際には変更されず、文字列は不変の変数です)など、不適切な表現がいくつかありますが、誤解を招かないように願っています。みんな。