//把word-word转换为wordWord
    function camelize(s) {
        return s.replace(/-(\w)/g, function (strMatch, p1) { return p1.toUpperCase(); });
    };
    window['ADS']['camelize'] = camelize;replace里面的这个function是怎样一个执行过程?

解决方案 »

  1.   

    相当于将匹配的$1项当作function的p1参数,可以忽略前一个参数
      

  2.   

    return s.replace(/-(\w)/g, function (strMatch, p1) { return p1.toUpperCase(); });这句话的意思是在传入的字符串s匹配正则表达式/-(\w)/g,并将匹配的到的值传入匿名函数,参数strMatch是整个正则表达式匹配的值,p1是小括号内匹配的值,匿名函数将p1转化为大写并返回,接着raplace将p1对应的初始值替换成处理过后的值。
    假如处理的是字符串‘word-word',则先是查找符号'-'后面的第一个字母,并将查找到的值传入匿名函数,此时strMatch =  '-w',p1 = 'w',p1被转化成大写'W'并返回,raplace再将p1的原始值'w'替换成'W'。
      

  3.   

    基本同意楼上,不过应该是最后replace将strmatch的值替换为"W"吧