reg中a(?=b)匹配字符串'abc' 字符串a的右边是b这个匹配没问题,接下来reg中a(?=b)后边的c匹配字符串时是从字符串'abc'中a的后边b的前边的这个位置开始匹配的,
这个相当于/ac/匹配'abc',显然结果是false了
(?!exp) 这个就是说字符出现的位置的右边不能是exp这个表达式。
var str = 'nodejs'; var reg = /node(?!js)/; console.log(reg.test(str)) // false
(?<=exp) 这个就是说字符出现的位置的前边是exp这个表达式。
var str = '¥998$888'; var reg = /(?<=\$)\d+/; console.log(reg.exec(str)) //888
(?<!exp) 这个就是说字符出现的位置的前边不能是exp这个表达式。
var str = '¥998$888'; var reg = /(?<!\$)\d+/; console.log(reg.exec(str)) //998
最后,来一张思维导图
图片如果放大也看不清的话 下载地址
如有错误欢迎指正!