/**
* 使用数组的序列来控制替换过程
*/
var aString = "......";
var aArray = [1,2,3,4,5,6];
var rx = /./g;
var newStr = aString.replace(rx,function(arr){
var pos = 0;
return function() {
return arr[pos++];
}
}(aArray));
alert(newStr);
/**
* 替换器
*/
function Replacer(obj) {
var n,rx = [];
for (n in obj) rx.push(n);
rx = new RegExp(rx.join('|'),'g');
return function(s) {
return s.replace(rx, function($0) {
return ($0 in obj ? obj[$0] : $0)
})
}
}
// test
var aObject = {'<br>':'\n','&':'&',' ':' ','<':'<','>':'>'};
var myReplacer = Replacer(aObject);
alert( myReplacer('1+2<4<br>&<br>2+3>4'));
// 摘自: 《javascript语言精髓与编程实践》 周爱民 著