我有一个旧脚本,它曾用于IE,但我不知道为什么它只能用于IE10,任何人都有一些线索吗?
String.Format = function (a) {
var b = Array.prototype.slice.call(arguments, 1);
return a.replace(/{(\d+)}/g, function () { return b[RegExp.$1] });
};
答案 0 :(得分:4)
根据MDN,RegExp.$n
属性已弃用。
请改为尝试:
return a.replace(/{(\d+)}/g, function (match) {
// match will include the {} so we strip all non-digits
return b[match.replace(/\D/g, '')];
});
或者使用第一个带括号的匹配来避免额外的replace
调用:
return a.replace(/{(\d+)}/g, function (match, p1) {
return b[p1];
});
答案 1 :(得分:1)