对于正则表达式,如果能够熟练掌握,真的是可以事半功倍。之前遇到个看似简单其实有点吃力的问题。
问题:如何实现千分位功能?这样:2,300,233,430
1.尝试了用字符串数组的方式,相对马上用的正则方式过程繁琐。
var k=0,num=2343432;
for(var i=(num.toString()).length-1;i>1;i–){
k++;
if(k%3==0){
str.splice(i,0,”,”)
}
}
2.用正则能实现:
这里需要 正则+字符串replace方法:
var str=23432423+”“;
str.replace( /\d(?=(\d{3})+\d)/g , “$&,” )
这里的?=表示匹配任何其后紧接指定字符串 n 的字符串。和*、+等都是正则中量词。
\d(?=(\d{3})+\d):表示找到后面紧跟一到多个\d{3}字符串的字符
$&,:即找到的那个字符在后面添加一个”,“
通过g属性最后实现。