正则表达式的正向预查
正则化相位跟随代码⾸先,让我们先做⼀道算法题: 将⼀串带⼩数的⾦额,例如: 1010000.5689, 每3位加上','分隔符。
刚开始我的做法是将.左边的部分单独提取出来进⾏正则替换,这花费了不少的步骤,直到我发现这种做法:
function commafy(str){
place(/(\d{1,3})(?=(\d{3})+\.)/g, '$1,')
}
console.log(commafy('1010000.5689'))
其中的?=称为正向预测,也叫正向前瞻
正向预测(?=pattern),即查⼀个字符串,该字符串的后边接有符合pattern条件的⼦字符串,但此pattern为⾮匹配捕获,即不需要获取以供以后使⽤
因此 1(第⼀个1) 后接有010 000,符合条件
0(第⼆个0) 后接有000 符合条件
此外还有
负向前瞻 (?!pattern) 匹配后⾯不是pattern的字符串
正向后瞻 (?<=pattern) 匹配前⾯是pattern的字符串 (js不⽀持)
负向后瞻 (?<!pattern) 匹配前⾯不是pattern的字符串 (js不⽀持)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。