黑马程序员技术交流社区
标题:
正则表达式实现千分位求详解
[打印本页]
作者:
高宜
时间:
2012-6-22 09:42
标题:
正则表达式实现千分位求详解
本帖最后由 高宜 于 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中匿名函数没看懂意思?
作者:
张恒维
时间:
2012-6-22 10:06
/g表示替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串。
给你个更直观的
function MyReplace(n)
{
re=/(\d{1,3})(?=(\d{3})+(?:$|\.))/g
n1=n.replace(re,"$1,")
document.write(n+"<br/>"+n1)
}
复制代码
作者:
鲍云龙
时间:
2012-6-22 12:46
匿名函数的意思:
第一个参数是要匹配的参数,即s=n;第二个参数是(\d+)匹配的值,即s1 便是/^(\d+)((\.\d+)?)$/正则中的$1,第三个参数s2为((\.\d+)?)为/^(\d+)((\.\d+)?)$/正则中的$2;
作者:
黑马杨凯
时间:
2012-6-23 22:37
顶一下!通过调试每一部分的结果,都能得到,可以判断出他们的用途,但是此处的匿名函数为什么可以这么用?为什么匿名函数能拿到s,s1,s2?
希望高手能详细说明
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2