IE5实现高版本的String.prototype.replace功能
来源:互联网 发布:阿里云 中策橡胶 编辑:程序博客网 时间:2024/04/27 20:38
在script5.6以上string的replace新增了功能,第二个参数可以是一个函数。
在实际使用时这个功能是十分有用的,可以实现嵌套的替换。现在来讲解一下如何在IE5中也实现该功能。如有讲得不到之处请指正。
<SCRIPT LANGUAGE="JavaScript">
<!--
/*
* Author : 蒲佛信
* Date : 2006-4-9
*/
String.replace = String.prototype.replace;
//保存原有的replace功能
if ("".replace(/^/,String))
String.prototype.replace = function (r, m)
{
if (typeof m == "function")
{
if (typeof r == "string")
{
//只调用一次function
return String.replace.call(this, r, m(r));
}
else if (r && r.constructor == RegExp)
{
var mc;
var s1 = this, s2 = "";
var r2 = new RegExp(r.source, r.ignoreCase ? "i" : "");
//循环调用function替换
while (s1 && (mc = r2.exec(s1)))
{
s2 += s1.slice(0, mc.index) + m.apply(null, mc);
s1 = s1.slice(mc.index + mc[0].length);
if (!r.global) break;
}
return s2 + s1;
}
else
{
//调用原来的replace功能
return String.replace.call(this, String(r), m);
}
}
else
{
return String.replace.call(this, r, m);
}
}
//-->
</SCRIPT>
以上函数在IE6和Firefox1.2测试通过.
- IE5实现高版本的String.prototype.replace功能
- C 语言版本的 string replace 函数
- String类的其他功能replace、compareTo
- String.prototype实现的一些javascript函数
- String.prototype实现的一些javascript函数
- c实现replace功能
- JScript5.5下String.prototype.replace(str,func)的UBB嵌套的递归解开。
- 使用prototype扩展JS内部对象String的功能
- String的replace方法
- JavaScript string 的replace
- JavaScript string 的replace
- JavaScript string 的replace
- JavaScript string 的replace
- std::string 的 replace函数的自定义实现
- IE5,IE6,IE7多版本共存的浏览器Multiple IE
- IE5,IE6,IE7多版本共存的浏览器Multiple IE
- C++ 使用STL string 实现的split,trim,replace-修订
- C++ 使用STL string 实现的split,trim,replace
- 程序调试技术 - 跳出死循环
- 计算机科学相关链接
- JBuilder 2006 企业完整版(4CD) Bit下载
- 第1课 A Spring jump start 06-04-09
- Liferay4.0RC1初印象
- IE5实现高版本的String.prototype.replace功能
- 随机函数srand()
- error:LNK2005终结篇
- 实践中的困惑
- 男人的标准身高- -(转帖)
- 狗秘书
- 中国第一程序员 求伯君
- 又一个周过去了
- 潘爱民个人经历