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函數(shù)的第二個參數(shù)我看mdn上可以指定一個函數(shù),其例子是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]這是啥意思呢,為啥參數(shù)是$0呢。
js中的String.prototype.replace函數(shù)
米脂
2018-08-09 09:14:23