【发布时间】:2013-11-21 11:54:19
【问题描述】:
我编写了一个简单的“replaceAll”函数来扩展 String.prototype。
String.prototype.replaceAll = function (removalChar, insertionChar) {
var output = "";
for (var i = 0; i < this.length; i++) {
if(this[i] == removalChar) {
output += insertionChar;
}
else {
output += this[i];
}
}
return output;
}
测试代码:
var test = "Hello-1-2-3";
alert(test.replaceAll("-"," "));
我的测试代码在包括 IE9 在内的所有浏览器中都会提醒 Hello 1 2 3。
但在 IE7 和 8 中,我得到的输出是这样的:undefinedundefinedundefinedundefinedundefinedundefined...
jsFiddle:http://jsfiddle.net/cd4Z2/ (在 IE7/IE8 中试试这个)
我怎样才能重写该函数以确保它在 IE7/8 上运行而不会破坏它在其他浏览器上的行为?
【问题讨论】:
-
感谢所有超快速响应!我决定“接受” Saturnix 的回答,因为它是最详细的,但 Teemu 和 wiz Kid 的回答也很酷!
标签: javascript internet-explorer