如何改写JS正则前瞻后顾及非捕获分组为长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计958个文字,预计阅读时间需要4分钟。
目录+前视、后视与捕获分组的使用+捕获分组与非捕获分组+前视、后视与负前视、负后视+总结+前视、后视与捕获分组的结合使用+在现实应用场景中,捕获分组或非捕获分组通常被限制使用+
目录
- 前瞻后顾与捕获分组的结合使用
- 捕获分组与非捕获分组
- 前瞻、后顾与负前瞻、负后顾
- 总结
前瞻后顾与捕获分组的结合使用
在现实的应用场景中,捕获分组或非捕获分组通常被限制在前瞻后顾条件内,举例来说,对数字12345678格式化,结果为12,345,678。其正则实现如下:
let formatSum = '12345678'.replace(/\B(?=(?:\d{3})+(?!\d))/g, ',')
捕获分组与非捕获分组
为了理解前瞻与后顾,首先要先理解捕获分组与非捕获分组
在js中,
()表示捕获分组,() 会把每个分组里的匹配的值保存起来,使用$n(n是一个数字,表示第n个捕获组的内容);
(?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来。
以formatSum 表达式为例,(?=(?:\d{3})+(?!\d)) ,(?:\d{3}) ,(?!\d) 都是分组,其中第二个分组是非捕获分组。
本文共计958个文字,预计阅读时间需要4分钟。
目录+前视、后视与捕获分组的使用+捕获分组与非捕获分组+前视、后视与负前视、负后视+总结+前视、后视与捕获分组的结合使用+在现实应用场景中,捕获分组或非捕获分组通常被限制使用+
目录
- 前瞻后顾与捕获分组的结合使用
- 捕获分组与非捕获分组
- 前瞻、后顾与负前瞻、负后顾
- 总结
前瞻后顾与捕获分组的结合使用
在现实的应用场景中,捕获分组或非捕获分组通常被限制在前瞻后顾条件内,举例来说,对数字12345678格式化,结果为12,345,678。其正则实现如下:
let formatSum = '12345678'.replace(/\B(?=(?:\d{3})+(?!\d))/g, ',')
捕获分组与非捕获分组
为了理解前瞻与后顾,首先要先理解捕获分组与非捕获分组
在js中,
()表示捕获分组,() 会把每个分组里的匹配的值保存起来,使用$n(n是一个数字,表示第n个捕获组的内容);
(?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来。
以formatSum 表达式为例,(?=(?:\d{3})+(?!\d)) ,(?:\d{3}) ,(?!\d) 都是分组,其中第二个分组是非捕获分组。

