1.需求概述
- 任意字符不能超过三个及以上,如“111”,“¥¥¥3”?
- 连续递增或递减的数字不超过三个及以上,如“123”,“654”?
- 连续正序或倒序的字母不超过三个及以上,如“abc”,“cba”?
2.正则表达式
- 任意字符不能超过三个及以上,如“111”,“¥¥¥3”?
const reg1 = /^(?!.*(·)\1{2,})$/;
- 连续递增或递减的数字不超过三个及以上,如“123”,“654”?
const reg2 = /^(?!.*(?:012|210|123|321|234|432|345|543|456|654|567|765|678|876|789|987)).+$/
- 连续正序或倒序的字母不超过三个及以上,如“abc”,“cba”?
const reg3 = /(?!.*(?:ABC|CBA|BCD|DCB|CDE|EDC|DEF|FED|EFG|GFE|FGH|HGF|GHI|IHG|HIJ|JIH|IJK|KJI|JKL|LKJ|KLM|MLK|LMN|NML|MNO|ONM|NOP|PON|OPQ|QPO|PQR|RQP|QRS|SRQ|RST|TSR|STU|UTS|TUV|VUT|UVW|WVU|VWX|XWV|WXY|YXW|XYZ|ZYX)).+$/i
3.总结
- 实在没有想到更好的方法,然后就用的枚举法,也是参考网友的,中间的三个字符可以写个方法自动生成,避免输错。
- 大佬们这个正则还有什么更好的写法吗?求指教?