正则表达式仅允许特定数字

时间:2019-08-09 15:04:35

标签: javascript regex

我有一个字段只能取整为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作为输入。

2 个答案:

答案 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控件,请使用stepminmax

<input type="number" step="12" min="0" max="120" name="multiplesOfTwelve"/>