次のコードが与えられます:
alpha = ('"foo"="bar"').replace(/.*foo...([^"]*).*/, RegExp.$1)
beta = ('"bar"="baz"').replace(/.*bar...([^"]*).*/, RegExp.$1)
期待される出力は次のとおりです。
alpha is "bar"
beta is "bar"
実際の出力は次のとおりです。
alpha is ""
beta is "bar"
これが私をこの回避策に導きました:
var alpha = beta = "", n = "\n";
('"foo"="bar"').match(/.*foo...([^"]*).*/);
alpha.toString.v1 = ('"foo"="bar"').replace(/.*foo...([^"]*).*/, RegExp.$1)
String('"bar"="baz"').replace(/.*bar...([^"]*).*/);
beta.toString.v2 = ('"foo"="baz"').replace(/.*foo...([^"]*).*/, RegExp.$1)
document.body.innerText += alpha.toString.v1 + n + alpha.toString.v2;
後方参照を更新するために一致を必要とせずにこれを行うにはどうすればよいですか?