请帮忙解释下javascript千分位显示数字的正则表达式

n="1279834847944074100465236.33"
//下面这个正则怎么个意思呢
re=/(\d{1,3})(?=(\d{3})+(?:$|\D))/g

n1=n.replace(re,"$1,")

alert(n+"\r\n"+n1)

/...../两个/标明正则区域后面的g表示全局,也就是会匹配所有符合项
第一个括号内\d{1,3}表示匹配1-3个连续数字。(?=pattern)是正向肯定预查,就是说前面匹配的连续三个数字后面必须符合pattern的配置。而pattern对应着这里的(\d{3})+(?:$|\D),(\d{3})+匹配连续三个数字一次或多次(也就是必须是连续的3、6、9.。。。个数字)。后面的(?:$|\D)是非获取匹配一个结束或者非数字字符。
so这个正则匹配的是 一个到三个连续数据 这个数字的背后必须是连续的3的倍数的数字加一个非数字或者是空格换行之类的结束 如 123456789 就能匹配123和456.
n1=n.replace(re,"$1,");这句为匹配加逗号。ni就会是1,279,834,847,944,074,100,465,236.33
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-13
正则的意思是匹配1到3位数字,它们后面正好有3的整数倍个数字。然后在这1到3位数字后面添加一个','。
整体的意思是在前面是数字,后面正好有3的整数倍个数字的地方,添加一个','。
它用到了肯定前序环视,要用到它是因为正则是从左向右匹配的