JS正则表达式解题:⽤科学计数法表⽰数字
题⽬:给定字符串 str = “1000000000”,⽤科学计数法表⽰该式(效果为:1,000,000,000)
正则表达式⽤来匹配特殊字符,在此题中可以考虑:从字符串的末位开始,每当位数是三的倍数,则添加⼀个逗号。
思路:
从字符串末位开始匹配 --> 以$结尾表⽰匹配输⼊结束前的位置
var reg =/...$/
位数为3的倍数 --> 表⽰长度为三且内容为[0-9]区间内的数字,出现次数未知,加上"+",表⽰匹配前⾯表达式[1-infinity]次
reg =/(\d{3})+/
添加"," --> 将空串替换为逗号
&place(reg,",")
注意:若字符串长度刚好为三的倍数,以上⽅式会在字符串前⾯加上逗号,为避免这种情况,可以通过匹配⾮单词边界来过滤
reg =/(\B)(\d{3}+$)/
给数字添加逗号,我们要匹配的是到末位位数为3的倍数的空串,将其替换为逗号,因此,上⾯的匹配属于先⾏断⾔的条件。即:匹配后⾯字符为 / r(\B)(\d{3}+4) / 模式的空串,再加上全局范围
reg =/ ?=(\B)(\d{3}+$) /g
最终代码如下:
var str ="1000000000";
var reg =/(?=(\B)(\d{3})+$)/g;
console.place(reg,","));
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论