有以下字符串: 我爱你 我爱 爱 爱你
如果要取出爱字,要求这个爱字后面有你,这个时候就要这么写,这就是 先行断言:
'我爱你 我爱 爱 爱你'.match(/爱(?=你)/g) // ["爱", "爱"]
如果要求爱字后面没有你,那自然也有先行否定断言:
'我爱你 我爱 爱 爱你'.match(/爱(?!你)/g) // ["爱", "爱"] ,因为匹配相同...
这个时候,如果要求爱字后面有你,前面还要有我,那就要用到后行断言了,如下:
'我爱你 我爱 爱 爱你'.match(/(?<=我)爱(?=你)/g) // ["爱"]
最后,如果要求爱字前面没有我,后面也没有我,那就要用到先行否定断言和后行否定断言,如下:
'我爱你 我爱 爱 爱你'.match(/(?<!我)爱(?!你)/g) // ["爱"]
先行断言应用: 金额千分位分割
所以正则表达式还是比较灵活的,接下来,让我们一起来瞅瞅正则表达式是如何来玩千分位的,上代码。
// 就是说1-3位后面一定要匹配3位
function formatMoneyWithReg(number) {
return !(number + '').includes('.')
?
(number + '').replace(/\d{1,3}(?=(\d{3})+$)/g, (match) => {
return match + ',';
})
: (number + '').replace(/\d{1,3}(?=(\d{3})+(.))/g, (match) => {
return match + ',';
});
}
console.log(formatMoneyWithReg(1243250.99));
网友评论