【正则】数字格式化
const str1 = "1000000000000";
const s = str1.replace(/\B(?=(\d{3})+$)/g, ",");
console.log(s); // 1,000,000,000,000
思路
找到符合要求的位置,替换为“,”
知识点
- 在正则表达式中单词边界是用
\b
表示,是指单词和非单词之间的位置,并非指字符。除了单词边界和非单词边界表示位置外,行首^
和行尾$
也是表示位置。 - 边界是指一个位置,而不是某一个具体的字符,那什么是位置,那就是每个字符之间以及字符串首尾。如果用|来表示位置的话,那么字符串
example:a+b=3
就表示为|e|x|a|m|p|l|e|:|a|+|b|=|3|
- 单词边界
\b
:javascript 中正则表达式单词的定义:[a-zA-Z0-9_]
组成的字符串。例:字符串example:a+b=3
表示为|example|:|a|+|b|=|3|
- 非单词边界
\B
:单词边界表示的位置都是非单词边界。例:字符串example:a+b=3
表示为e|x|a|m|p|l|e:a+b=3
- 前瞻运算符
?=exp
:前瞻运算符是正则表达式中一种特殊的元字符或构造,它允许正则表达式引擎在当前匹配位置向前“查看”文本,而无需实际移动匹配指针。特点:1. 不改变匹配焦点 2. 返回位置信息。