この基本的に私はちょうど下記のこの機能もののつもりだった基本的なJavaScriptの質問です:あなたは、このコードはすでにSOに別のスレッドから取られている見ることができるように関数を置き換えるパラメータを渡すのは誰ですか?
function hexToRgb(hex){
// By Tim Down - http://stackoverflow.com/a/5624139/3493650
// Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
hex = hex.replace(shorthandRegex, function(m, r, g, b) {
return r + r + g + g + b + b;
});
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
};
は、今、私の質問は、コードのpeiceについて、具体的です:
var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
hex = hex.replace(shorthandRegex, function(m, r, g, b) {
return r + r + g + g + b + b;
});
置換機能IEのパラメータ私は私のdevのツールに見るように、M、R、G、Bは基本的に以下の通りです:
m = "#fff",
r = f
g = f
b = f
は私のdevのツールでABOEを参照してください、私は渡されていたオプションが#FFFです。
私の質問は誰がそこにパラメータを渡しているのですか?正規表現はパラメータが渡されることと関係がありますか?誰がこれらのパラメータを渡していますか? m、r、g、b?私は正規表現が何をしているかを確認しましたHEREしかし、私はまだこの関数にパラメータを渡しているのか分かりませんか?
'.replace'パラメータを渡している、あなたはそれがここにhttps://developer.mozilla.org/en-を渡す引数を見ることができますUS/docs/Web/JavaScript/Reference/Global_Objects/String/replace – elclanrs
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter –
最初の引数は次のとおりです。マッチ全体後の引数はそれぞれキャプチャグループです。この関数は、_String_ '" $ 1 $ 1 $ 2 $ 2 $ 3 $ 3 "を渡すのと同じです –