Regex 用于匹配数字列表的正则表达式

Regex 用于匹配数字列表的正则表达式,regex,html,Regex,Html,我有一个有效数字列表,如下所示: 50, 56, 62, 68, 74, 80, 86, 92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158 我需要一个正则表达式,它允许列表中的每个数字,但不允许其他任何数字。此正则表达式用于验证HTML5输入控件。澄清的几个例子: 50 => true 150 => false abc => false 51 => false 110 => true 11 =>

我有一个有效数字列表,如下所示:

50, 56, 62, 68, 74, 80, 86, 92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158
我需要一个正则表达式,它允许列表中的每个数字,但不允许其他任何数字。此正则表达式用于验证HTML5输入控件。澄清的几个例子:

50 => true
150 => false
abc => false
51 => false
110 => true
11 => false
50, 56 => false
我尝试过这个表达式,但问题是像156和150这样的数字也会匹配

50|56|62|68|74|80|86|92|98|104|110|116|122|128|134|140|146|152|158

有人能帮我吗?

添加
^
$
以匹配字符串的开头和结尾

^(50|56|62|68|74|80|86|92|98|104|110|116|122|128|134|140|146|152|158)$

编辑
OP在评论中提到,他使用在线工具测试了自己的模式,结果是错误的。另外,Wiktor Stribiżew在评论中提到,如果在HTML5元素的
模式属性中使用OP的模式,则OP的模式是正确的

添加
^
$
以匹配字符串的开头和结尾

^(50|56|62|68|74|80|86|92|98|104|110|116|122|128|134|140|146|152|158)$

编辑
OP在评论中提到,他使用在线工具测试了自己的模式,结果是错误的。另外,Wiktor Stribiżew在评论中提到,如果在HTML5元素的
模式属性中使用OP的模式,那么OP的模式是正确的

您是否将其用作
pattern=“50 | 56 | 62 | 68 | 74 | 80 | 86 | 92 | 98 | 104 | 110 | 116 | 122 | 128 | 134 | 140 | 152 | | | | REG1; | 146 |代码是您的工作代码。一开始根本没有问题。第二,在发布问题之前,必须在真实的目标环境中进行测试,在线测试人员经常被滥用,只有当你知道自己在做什么时才可以使用。Regex101.com也提供示例代码生成,但HTML5模式有其独特之处。您是否将其用作
pattern=“50 | 56 | 62 | 68 | 74 | 80 | 86 | 92 | 98 | 104 | 110 | 116 | 122 | 128 | 134 | 140 | 146 | 152 | 158。一开始根本没有问题。第二,在发布问题之前,必须在真实的目标环境中进行测试,在线测试人员经常被滥用,只有当你知道自己在做什么时才可以使用。Regex101.com还提供示例代码生成,但HTML5模式有其自身的特点。请注意,
pattern
属性默认锚定regex,无需添加另一对。如果模式在模式属性中使用,分组也会自动添加。@WiktorStribiżew。但是OP说他的模式也匹配150,所以我认为他需要
^
$
。也许他在服务器端使用regex或javascript。OP没有解释他是如何实现他的检查的。谢谢,问题是,我在一个在线工具中测试了这个表达式,因此它没有封装它。当我在HTML中尝试它时,它是开箱即用的。@NiyokoYuliawan正如您所看到的OP不需要
^
$
@WiktorStribiżew是的,您是对的。请注意,
模式
属性默认情况下锚定正则表达式,无需添加另一对。如果模式在模式属性中使用,分组也会自动添加。@WiktorStribiżew。但是OP说他的模式也匹配150,所以我认为他需要
^
$
。也许他在服务器端使用regex或javascript。OP没有解释他是如何实现他的检查的。谢谢,问题是,我在一个在线工具中测试了这个表达式,因此它没有封装它。当我在HTML中尝试它时,它是开箱即用的。@NiyokoYuliawan正如您所看到的OP不需要
^
$
@WiktorStribiżew是的,您是对的。