Javascript Regex只允许特定的数字

Javascript Regex只允许特定的数字,javascript,regex,Javascript,Regex,我有一个字段,它应该只取12整除的值。例如12,24,36,48,60,72,84,96108120. 我使用下面的正则表达式: 12|24|36|48|60|72|84|96|108|120 但这也允许值,如12abc,12-&。它允许字母或带有数字的特殊字符。 是否有任何正则表达式只允许12,24,36,48,60,72,84,96108120作为输入。我同意Pointy的观点,这听起来不像是正则表达式的工作。如果你使用的是HTML5输入验证,那么一定要使用 但从您所说的匹配来看,只是您没

我有一个字段,它应该只取12整除的值。例如
12,24,36,48,60,72,84,96108120.
我使用下面的正则表达式:

12|24|36|48|60|72|84|96|108|120
但这也允许值,如
12abc,12-&。它允许字母或带有数字的特殊字符。

是否有任何正则表达式只允许
12,24,36,48,60,72,84,96108120
作为输入。

我同意Pointy的观点,这听起来不像是正则表达式的工作。如果你使用的是HTML5输入验证,那么一定要使用

但从您所说的匹配来看,只是您没有输入起始点(
^
)和输入结束点(
$
):

(您需要非捕获组或锚定成为其下一个备选方案的一部分。)

如果要允许使用无害空间,请执行以下操作:

^\s*(?:12|24|36|48|60|72|84|96|108|120)\s*$


显然,在这两种情况下(执行类似于此的操作或Sean的HTML5方法),如果要将其发送到服务器,您也需要在服务器上对其进行验证。

如果您使用HTML5控件,请使用
step
min
max

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


这不是正则表达式的工作。如果你只需要那些特定的数字,你可以在正则表达式中添加一个起始字符和结束字符
(12 | 24 | 36 | 48 | 60 | 72 | 84 | 96 | 108 | 120)$
,但总体上我认为@Pointy是正确的。函数是有效的(输入){return input(input%12==0)&(input>11)&&(输入此关于锚的页面可能对@Onheiron有帮助,谢谢它起作用了可能还
min=0
min=12
您仍然需要服务器端验证(这不应该基于regex)过滤伪造的POST请求。@collapsar他们没有指定他们使用的服务器端框架,所以我很难说:)@collapsar-好吧,这是一个真理,不是Sean的答案所特有的。:-)客户端验证本身是不够的。@T.J.Crowder你是对的。但是Q只要求(基于正则表达式)验证通常包括客户端和服务器端,而此答案仅限于客户端。
<input type="number" step="12" min="0" max="120" name="multiplesOfTwelve"/>