function htmlEncode(str) {
//var div = document.createElement('div');
//div.innerText = str;
//return div.innerHTML;
var map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
var mapper = function($0) {
return map[$0];
};
return str.replace(/[&<>"']/g, mapper);
}
上面代码中replace函数的第二个参数我看mdn上可以指定一个函数,其例子是
function replacer(match, p1, p2, p3, offset, string) {
// p1 is nondigits, p2 digits, and p3 non-alphanumerics
return [p1, p2, p3].join(' - ');
}
var newString = 'abc12345#$*%'.replace(/([^\d]*)(\d*)([^\w]*)/, replacer);
这个例子我勉强可以看懂,可是最上面的代码map是一个对象,map[$0]这是啥意思呢,为啥参数是$0呢。
富国沪深
相关分类