当前位置:  开发笔记 > 编程语言 > 正文

正则表达式4非连续且没有重复数字

如何解决《正则表达式4非连续且没有重复数字》经验,为你挑选了1个好方法。

通过此验证,我已经花了几天时间.我使用JavaScript来验证的4位用户销,其不应该接受相邻的重复数字组成,例如11351552等它不应该接受的数字序列,例如:12343456或甚至1275(0序列位数等12** *56*,**87,21**(即没有上升或下降的顺序).

我试过从@polygenelubricants的这个答案修改正则表达式

他的正则表达如下:

^(?=\d{4}$)(?:(.)\1*|0?1?2?3?4?5?6?7?8?9?|9?8?7?6?5?4?3?2?1?0?)$

但是,这也符合3579这在我的情况下,它应该被允许,所以我修改了它是这样的(这在我的脑海意味着,比赛总共4个位数号码,然后查找所有的数字和检查,如果他们不重复多如果它没有找到它0和它1旁边的a 或a 1和a 2旁边的一个OR ...(并且降序相同))

^(?:\d{4}$)(?:(.)(?!\1)|0?1?|1?2?|2?3?|3?4?|4?5?|5?6?|6?7?|7?8?|8?9?|9?8?|8?7?|7?6?|6?5?|5?4?|4?3?|3?2?|2?1?|1?0?)$

然而,当我测试它时,我得到了所有4位数字,但它没有评估它们是否重复多次或排序.

请参阅运行示例



1> Bart Kiers..:

这样的事情怎么样:

(?!.*(?:(\d)\1|12|23|34|45|56|67|78|89|98|87|76|65|54|43|32|21))\d{4}

在这里测试:http://www.regexpal.com/ ? fam = 93673

如果需要包含0,请执行以下操作:

(?!.*(?:(\d)\1|01|12|23|34|45|56|67|78|89|98|87|76|65|54|43|32|21|10))\d{4}

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有