代码改变世界

正则表达式

2021-06-29 10:50  天心PHP  阅读(144)  评论(0编辑  收藏  举报

https://www.runoob.com/regexp/regexp-tutorial.html

https://deerchao.cn/tutorials/regex/regex.htm#getstarted

数字每隔3位加入逗号

第一种:str.replace(/\B(?=(?:\d{3})+\b)/g, ',');

/\B(?=(?:\d{3})+\b)/g 分析:

1./\B(?=(***)/g  查找***前面的非单词分界符合

2.(?:\d{3})+\b)   \b单词分解符前面的三个数字的一组或者多组    +:至少一个   一个是:890 两个:567890  三个:234567890

 第二种:(?!\b)(?=(\d{3})+$)

 1.(?=(\d{3})+$) 查找  098  098765 098765432 前面的

2.(?!\b)前面非单词分界符

第三种:(?<=[0-9])(?=(?:[0-9]{3})+(?![0-9]))

1.(?<=[0-9]) 查找数字后面的

2.(?![0-9]) 查找 非数字前面的 也可以用\b 单词分解符

3.(?:[0-9]{3})+  三个数字的倍数

类似 1 234567890  ,1234 567890

 

例如:str = '1234567890',输出结果为'1,234,567,890'
\B匹配不是单词开头或者结束的位置
(?=exp)匹配exp前面的位置
(?:exp)匹配exp,不捕获匹配的文本,也不给此分组分配组号
\b代表单词分界位置