正则规则收集
?:pattern
匹配pattern但不获取匹配结果
var str = 'aaabbb'
var reg = /(a+)(?:b+)/
str.match(reg)
// ["aaabbb", "aaa", index: 0, input: "aaabbb", groups: undefined]
?=pattern 零宽度正预测先行断言
意思就是匹配内容右侧必须为pattern
var str = "i'm singing and dancing";
var reg = /\b(\w+(?=ing\b))/g
var res = str.match(reg);
console.log(res)
// ["sing", "danc"]
?!pattern 零宽度负预测先行断言
就是匹配右侧不是pattern内容
var str = 'nodejs'
var reg = /node(?!js)/
reg.test(str) // false
?<=pattern
匹配这个位置之前为pattern的内容
var str = '111$222'
var reg = /(?<=\$)\d+/
str.match(reg)
// ["222", index: 4, input: "111$222", groups: undefined]
?<!pattern
匹配这个位置之前部位pattern的内容
var str = '¥998$888';
var reg = /(?<!\$)\d+/;
console.log(reg.exec(str)) //998
参考资料
https://www.cnblogs.com/allen2333/p/9835654.html
https://blog.csdn.net/weixin_33782386/article/details/91373084
http://www.qiutianaimeili.com/html/page/2018/12/01kxcpir5z2g.html
http://www.qilin668.com/a/5e2401f53373dvd.html
评论 (0)