您的位置:首页 > Web前端 > JavaScript

JS 正则表达式解题:用科学计数法表示数字

2020-07-14 05:52 806 查看

题目:给定字符串 str = “1000000000”,用科学计数法表示该式(效果为:1,000,000,000)

正则表达式用来匹配特殊字符,在此题中可以考虑:从字符串的末位开始,每当位数是三的倍数,则添加一个逗号。

思路:

  • 从字符串末位开始匹配 --> 以$结尾表示匹配输入结束前的位置
var reg =/...$/
  • 位数为3的倍数 --> 表示长度为三且内容为[0-9]区间内的数字,出现次数未知,加上"+",表示匹配前面表达式[1-infinity]次
reg = /(\d{3})+/
  • 添加"," --> 将空串替换为逗号
>str.replace(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.log(str.replace(reg, ","));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: