js写法/^(d)(?!1)d$/
var reg = /^(d)(?!1)d$/
reg.test('123') // false
reg.test('12') // true
reg.test('11') // false
知识点:
- 捕获型括号和反向引用,使用
(d)
捕获第一个数字字符,使用反向引用1
引用实际匹配到的第一个字符; - 断言,
?!
表示后面不能匹配的内容,(?!1)
表示该位置不能匹配前面的字符; - 最后一个
d
匹配一个数字;
所以整个正则表示匹配两个数字,且第二个数字不等于第一个数字。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…