请教下这个JS替换函数的执行过程

凡星℃ 2011-10-04 10:44:55
//把word-word转换为wordWord
function camelize(s) {
return s.replace(/-(\w)/g, function (strMatch, p1) { return p1.toUpperCase(); });
};
window['ADS']['camelize'] = camelize;

replace里面的这个function是怎样一个执行过程?
...全文
94 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
峭沙 2011-10-05
  • 打赏
  • 举报
回复
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'。
BLUE_LG 2011-10-05
  • 打赏
  • 举报
回复
相当于将匹配的$1项当作function的p1参数,可以忽略前一个参数。。。
最后一个菜鸟 2011-10-05
  • 打赏
  • 举报
回复
基本同意楼上,不过应该是最后replace将strmatch的值替换为"W"吧

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧