正则表达式在处理文本方面具有天然优势,但受限于它的可读性和可编程性,我们总会在写出一长串正则表达式后怀疑它是否能如期表现,进而对它进行一系列测试和校验。

本着 DRY 原则,我把曾经用过或学习过的一些优秀的正则表达式整理汇总,记录自己的同时也分享给大家,希望能帮到各位望着正则表达式头皮发麻的同学们。

我相信,总有一款会让你喊出“卧槽”。

一、正则表达式为数字添加千分符

1
/\B(?=(\d{3})+\b)/;
  1. 查找一个“非单词边界”
  2. [1]后面伴随着“3 的倍数个数字”
  3. [2]后面伴随着一个“单词边界”

把查找到的“非单词边界”替换成千分符即可

1
2
'32132112345123136.123'.replace(/\B(?=(\d{3})+\b)/g, ',');
('32,132,112,345,123,136.123');

缺陷:小数位同样会被处理

1
2
'32132112345123136.123123123123'.replace(/\B(?=(\d{3})+\b)/g, ',');
('32,132,112,345,123,136.123,123,123,123');

评论

富强、民主、文明、和谐,自由、平等、公正、法治,爱国、敬业、诚信、友善