文字列の一部がオブジェクト オプションに置き換えられるマイクロ テンプレート スクリプトを作成しています。以下に短い例を示します。
var person = {name:"Smith",age:43};
var string = "I am {name} and I am {age} years old";
document.write(string.replace(/{([\s\S]+?)}/g,(person['$1']||"")));
document.write("<br/>");
document.write(string.replace(/{([\s\S]+?)}/g
, function($0,$1){return person[$1]||"";}));
2 番目の式は正常に機能しますが、最初の式は機能しません。誰でも理由を説明できますか?$1
文字列内の後方参照として直接使用できると思いました。