A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高宜 中级黑马   /  2012-6-22 09:42  /  3156 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 高宜 于 2012-6-22 09:43 编辑

function commafy(n){
var re=/\d{1,3}(?=(\d{3})+$)/g;
var nl=n.replace(/^(\d+)((\.\d+)?)$/,function(s,s1,s2){return   s1.replace(re,"$&,")+s2;});
return n1;
}
其中/正则表达式.../g后面的这个g是什么意思?
之后n.replace中匿名函数没看懂意思?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览
/g表示替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串。
给你个更直观的
  1. function MyReplace(n)
  2. {
  3.         re=/(\d{1,3})(?=(\d{3})+(?:$|\.))/g
  4.         n1=n.replace(re,"$1,")
  5.         document.write(n+"<br/>"+n1)
  6. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
匿名函数的意思:
第一个参数是要匹配的参数,即s=n;第二个参数是(\d+)匹配的值,即s1 便是/^(\d+)((\.\d+)?)$/正则中的$1,第三个参数s2为((\.\d+)?)为/^(\d+)((\.\d+)?)$/正则中的$2;


评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
顶一下!通过调试每一部分的结果,都能得到,可以判断出他们的用途,但是此处的匿名函数为什么可以这么用?为什么匿名函数能拿到s,s1,s2?
希望高手能详细说明
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马