Perl�ˤ�qq($variable)�� Ruby�ˤ�#{ expression }��Pyhon�����Ƥ�����JavaScript�ˤ�¸�ߤ��ʤ��ΤϤʤ���

�Ȥ����櫓�ǡ��������Ƥߤޤ�����

�����򥯥�å���interpolate���ޤ���

  • �����ȥ�� document.title.
  • URI�� location.href
  • ����� ������
  • �����OK encodeURIComponent('������')
  • �����OK document.getElementsByTagName('body')
  • �����OK: (function(){ var a = []; for(var p in document) a.push(p); return a.join(", "); })()

���Ƥ��̤ꡢ����äȶ��Ϥ����뤫�⡣ �Ǥ⡢�ѿ�(variable)���Ȥ�����꼰(expression)��Ϥ������䤬��ͳ���ߤ����٤ޤ����� Geek�����ζ��Ϥʥƥ�ץ졼�ȥ��󥸥����ǥ����ʡ�����Ȥ��ˤȤäƻȤ��䤹�����⡣

�������Ϥ����顣

function Interpolator(open, close){
    this.quotemeta = function(str){
      return str.replace(/[^0-9A-Za-z_]/g, function(m){
            return '\\' + m;
      });
    };
    this.regexp = new RegExp(
        this.quotemeta(open) + '((?:\n|.)+?)' + this.quotemeta(close), 
    'img'); // i is for cases like '<tag> - </tag>'
    this.interpolate = function(str){
        return str.replace(this.regexp, function(m0, m1){
            var result = '';
            try{
                result = eval(m1);
            }catch(e){
                result = '[' + m1 + ':' + e + ']';
            }
            return result;
        });
    };
    this.fill = this.interpolate;
}

�Ȥ��Ȥ���

var itp = new Interpolator('<code>', '</code>');
var elem = document.getElementByName('interpolate');
elem.innerHTML = itp.fill(elem.innerHTML)

�Ȥ��ޤ���

���줬eval()��ȤäƤ����Ǥ��������Ȥ����ΤǤ���С������json�Ȥ����ͤù���Ǥ������Ÿ������Ȥ�����Τ⡢����򸵤ˤ�������Ū��ñ�˽񤱤�Ǥ��礦��

Enjoy!

['Javascripter', 'the', 'Dan'].reverse().join(' ');