描述
给定一串纯数字,从个位开始以3位数字为一个单位以 ',' 分隔开来,最后返回一个字符串
实现
return number.toString().replace(/\B(?=(\d{3})+$)/g,',')
详解
'\B' 表示非单词边界。它匹配一个前后字符都是相同类型的位置,即它的位置位于两个字符中间。举例:
let number = 123
console.log(number.toString().replace(/\B/g,',')) //1,2,3
'x(?=y)' 表示正向查找,匹配 'x' 当且仅当 'x' 后面跟着 'y'。举例:
// 需求:在 3 和 5 插入 ‘,’
// 如果 \B 后面跟着 3或5 则将其替换为 ‘,’
let number = 123456
console.log(number.toString().replace(/\B(?=(3|5))/g,',')) // 12,34,56
'(\d{3}+$)':以3个数字为一个单位直至结尾,结尾必须是3个数字,像是从后往前数
- '\d'表示数字;
- '{3}'表示数量为3个;
- '+'表示一个或者一个以上;
- '$'表示结尾;
结论
给定一串数字(不保存小数),从后面往前数,以三个数字为一个单位添加 ',' 作为分隔符
网友评论