正则

138 阅读1分钟

获取最后一个顿号后面的数据

const str = "a.b.c";
console.log(str.replace(/[\s\S]*\./, ''));
字符描述
\s任何空白字符,包括空格、制表符、换页符等等 等价于 [ \f\n\r\t\v]
\S匹配任何非空白字符。等价于 [^ \f\n\r\t\v]
*匹配零次或多次。 等价于{0,}。

数字格式化,每三个数字加一个逗号,逗号不能在第一位或者最后一位

例如: 38749623873 =》 38,749,623,873

num.replace(reg,’,’) 结果: 38,749,623,873

const num = 38749623873;
const reg  = /(?<=\d)(?=(\d{3})+$))/g;
console.log((str+'').replace(reg, ','));
字符描述
(?=pattern)正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows (?=9598NT2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?<=exp)零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp; # 例子:'name:wangfei'.scan /(?<=name:)(wangfei)/ #wangfei 匹配前面为name:,结果为wangfei