题解 | #分隔符#

分隔符

https://www.nowcoder.com/practice/e5696992841841a8ab9d026324e4bb77

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <style>
       /* 填写样式 */
    </style>
</head>

<body>
    <!-- 填写标签 -->
    <script type="text/javascript">
        // 填写JavaScript
       

function _comma(number) {
                // 补全代码
                return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
            }
    </script>
</body>

</html>

在JavaScript中,你可以使用 String.prototype.replace() 方法和一个适当的正则表达式来实现将数字转换为带有千分位分隔符的字符串。以下是一个名为 _comma 的函数实现,它接受一个数字参数并返回格式化为带有千分位分隔符的字符串

这里的正则表达式解释如下:

  • \B 表示非单词边界,确保分隔符不会添加在数字的开头或中间的数字字符。
  • (?=(\d{3})+(?!\d)) 是一个正向先行断言,它会匹配每个三位数字的序列,但要求序列后不应跟数字字符(即不匹配数字中间的三位)。

当调用 _comma(12300) 时,该函数将返回 '12,300'。这种方法适用于将整数转换为带有千分位分隔符的字符串。如果输入数字非常大,或者你需要处理小数,这个函数同样有效。

为什么不能直接用 Intl.NumberFormat().format(number) 来做呢?

Intl.NumberFormat 是国际化 API 的一部分,它不仅可以用来添加千分符,还可以用来处理不同语言环境下的数字格式,包括小数点、货币符号、百分比等。

如果你之前认为 Intl.NumberFormat 不能用,可能是因为以下原因:

  1. 不了解这个方法:可能你之前不知道 Intl.NumberFormat 可以用于这种格式化。
  2. 兼容性问题:尽管 Intl API 已经被大多数现代浏览器支持,但可能在某些非常旧的浏览器或环境中不可用。
  3. 特定需求:如果你有特别的需求,比如自定义千分符或者格式化负数,可能需要额外的配置或处理。

然而,对于大多数情况,Intl.NumberFormat 是一个强大且灵活的工具,可以用来格式化数字,并且推荐在需要国际化支持时使用它。如果你只是需要简单地添加千分符,使用正则表达式的方法也是完全可行的。

#刷题我是认真的#
全部评论

相关推荐

给我发了笔试链接,想着等晚上回去做,结果还没做流程就终止了
伟大的小黄鸭在学习:我猜就是笔试几乎没用,就是用来给用人部门拖时间复筛简历的,可能用人部门筛到你简历觉得不合适就提前挂了
投递小鹏汽车等公司10个岗位
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
球球别拷打俺了:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务