2017-03-03 1211 views
0

我希望使用正则表达式模式和表格元素<input>。从列表中排除数字的正则表达式

在这种模式中,我想把一系列不允许作为输入的数字。

例如,我会列出一个编号为{1,4,10}的列表,并且允许的输入是任何除此之外的其他编号。

我已经成功地创建此正则表达式:

[^(1|4|10)] 

但也排除了一切含有0,1或4个为10

+0

你能证明你的代码? – RomanPerekhrest

+0

您正在使用哪种语言? JavaScript的? – sp00m

回答

2

如果负向前看符号是允许的,那么你可以试试下面的正则表达式:

^(?!(?:1|4|10)$)\d+$ 

Regex101

+0

可以缩写为'^(?!(?: 1 | 4 | 10)$)\ d + $'。 – sp00m

+1

@ sp00m谢谢,我刚刚学到了一些新东西。 –

0

这样你不需要在这里使用一个字符类(即[]),因为|已经意味着'这个角色或那个角色'。 相反,使用:

^(1|4|10)$ 

的^匹配字符串的开头,而$字符串的结尾匹配,所以这将只匹配1(不加任何东西),4(有没有别的)或10(没有别的)。

顺便说一下,要测试正则表达式,可以使用在线测试程序,如https://regex101.com/