我有一个只能取值为12的值的字段,例如12,24,36,48,60,72,84,96,108,120.
我在regex下面使用的值:
12|24|36|48|60|72|84|96|108|120
Run Code Online (Sandbox Code Playgroud)
但这还允许诸如的值12abc, 12-!&。它允许带有数字的字母或特殊字符。是否有任何正则表达式只允许12,24,36,48,60,72,84,96,108,120作为输入。
我同意Pointy的观点,这听起来并不是正则表达式的工作。如果您使用的是HTML5输入验证,则一定要使用Sean T展示的方法。
但是从您说的是匹配的角度来看,只是您没有输入开始^锚($)和输入结束锚():
^(?:12|24|36|48|60|72|84|96|108|120)$
Run Code Online (Sandbox Code Playgroud)
(您需要非捕获组,否则锚点将成为其旁边替代项的一部分。)
如果要允许无害空间:
^\s*(?:12|24|36|48|60|72|84|96|108|120)\s*$
Run Code Online (Sandbox Code Playgroud)
显然,无论哪种情况(执行类似操作或使用Sean的HTML5方法),如果将其发送到服务器,则也需要在服务器上对其进行验证。