regex:不允许用户输入使用0和9形成的重复数字

问题描述 投票:-1回答:2

我想创建正则表达式,以防止输入使用0和9形成的数字0000 000099999 99999

我已经尝试过this,它的工作准确度是80%。虽然它也允许使用0和9的组合形成数字,例如。 0000 9999

为此,我需要指导以防止输入0和9的总和。

更新:我试图防止使用09创建的独立编号,换句话说,9999999999999 99999999999 9 9 99999990000000000000 00000000000 0 0 0000000是不可接受的输入。

但是,可以接受909090909009 00990000 99999999900000123456879 555228899等。

谢谢

regex
2个回答
0
投票

我的猜测是,也许这两个语句可能对解决问题有所帮助:

(?=.*0)(?=.*9)

例如,基于此我们可以编写一些简单的表达式,例如:

(?=.*0)(?=.*9)^[09]+\s?[09]+$

如果要简化/更新/探索表达式,请在regex101.com的右上角进行说明。如果您有兴趣,可以观看匹配的步骤或在this debugger link中进行修改。调试器演示了a RegEx engine如何逐步使用一些示例输入字符串并执行匹配过程。



0
投票

[您可以对包含全零和空格或全九和空格的字符串使用正负表达式,然后在数字和空格字符串上进行匹配,即]]

^(?![0 ]+$)(?![9 ]+$)([\d ]+)$

Demo on regex101

如果要强制数字中只能有一个空格,请为此添加一个正向前瞻:

^(?![0 ]+$)(?![9 ]+$)(?=[^ ]* ?[^ ]*$)([\d ]+)$

Demo on regex101

© www.soinside.com 2019 - 2024. All rights reserved.