本帖最后由 duankaige 于 2010-12-28 13:56:13 编辑

解决方案 »

  1.   

    1.就象交换算法一样,先将最初的window.alert赋给window._alert;
    然后重写window.alert函数,在此函数中调用了原来的window.alert即window._alert;
    2.我觉得函数function(r,r1)是replace函数的第二个参数,具体可以查replace的api,r应该是被匹配到的字符串,r1是最小索引位置;
      

  2.   

    问题1如1楼说的,就是像使用临时变量一样
    2.function(r,r1)在每匹配到unicode格式字符就执行一次。第一个参数表示匹配到的字符,第二个参数表示匹配时的字符最小索引位置(RegExp.index),第三个是被匹配的那个字符串。所以这里的话r和r1不写也没事,String.fromCharCode(r1)写成String.fromCharCode(arguments[1])。关于代码逻辑问题,你自己试下就知道了。
      

  3.   


    先把 A给B 备份原始的
    在让A=C;则调用A等于调用C
    在C中间有逻辑的调用B 这样在调用前可以插入自己的业务逻辑
      

  4.   

    问题1,3楼朋友 描述的准确到位,已理解。问题2:根据1楼和2楼两位朋友启发,查看了replace的API,结果发现的确有很多不知道的,并理解了问题。补充:
        replace的第一个参数,如果是正则表达式并且具有全局标志 g,那么 replace() 方法将替换所有匹配的子串;
        replace第二个参数如果是方法,则每个匹配都将调用该函数,它返回的字符串将作为替换文本使用;
    这个方法的第一个参数是匹配模式,即replace的第一个参数;接着是匹配到的字符串,可以有多个,再往后,是匹配到的位置,最后是replace的调用者本身。详细信息,请查看
    http://www.w3school.com.cn/js/jsref_replace.asp好了,结贴收工,谢谢3位朋友,祝你们元旦快乐,合家幸福。