escape() | Underscore JS 日本語リファレンス

引数の文字列に「<」「>」など文字実態参照があるものは文字実態参照に置き換えられる。

■使用例

var str = "Kokia & 上野洋子";
// "Kokia &amp; 上野洋子"
console.log(_.escape(str) );

■内部構造

_.escape = createEscaper(escapeMap);
var escapeMap = {
	"&" : "&amp;",
	"<" : "&lt;",
	">" : "&gt;",
	'"' : "&quot;",
	"'" : "&#x27;",
	"`" : "&#x60;"
};
var createEscaper = function(map) {
	
    var escaper = function(match) {
// return escapeMap[match]    	
      return map[match];
    };

    var source = "(?:" + _.keys(map).join("|") + ")";
// testRegexp = /(?:&|<|>|"|'|`)/;
    var testRegexp = RegExp(source);
    
// replaceRegexp = /(?:&|<|>|"|'|`)/g;
    var replaceRegexp = RegExp(source, "g");
 
// _.escape() の引数はこの返される関数の引数。   
    return function(string) {
      string = string == null ? "" : "" + string;

// testRegexp.test(string); が false なら _.escape() の引数は何もされずに返る。  
// testRegexp.test(string); が true なら マッチした文字が escaper() に渡されマッチした文字が置き換えられる。
// CMS tool のエラーのためリプレイスの表記少し変えています。  
      return testRegexp.test(string) ? string.r(e)place(replaceRegexp, escaper) : string;
    };
};

このページのトップへ戻る