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. 返回位置信息。

标签: 暂无标签