我有一个字段只能取整为12的值,例如12,24,36,48,60,72,84,96,108,120.
我在正则表达式下面使用了:
12|24|36|48|60|72|84|96|108|120
但这也允许诸如12abc, 12-!&
之类的值。它允许带有数字的字母或特殊字符。
是否有任何正则表达式仅允许12,24,36,48,60,72,84,96,108,120
作为输入。
答案 0 :(得分:5)
我同意Pointy的观点,这听起来不像是正则表达式的工作。如果您使用的是HTML5输入验证,则肯定要使用the approach Sean T shows。
但是根据您所说的匹配,只是您没有输入开始(^
)和输入结束锚($
):>
^(?:12|24|36|48|60|72|84|96|108|120)$
(您需要非捕获组,否则锚点将成为其旁边替代项的一部分。)
如果要允许无害的空间:
^\s*(?:12|24|36|48|60|72|84|96|108|120)\s*$
很明显,无论哪种情况(执行类似操作或使用Sean的HTML5方法),如果将其发送到服务器,则也需要在服务器上对其进行验证。
答案 1 :(得分:3)
如果您使用的是html5控件,请使用step
,min
和max
。
<input type="number" step="12" min="0" max="120" name="multiplesOfTwelve"/>