某些特定数字的正则表达式

时间:2011-04-05 11:35:47

标签: regex

我想验证用户输入字段只允许用户输入+ 1,-1,+ 10,-10和+ 25,-25,没有别的。这个限制的正则表达式是什么?

4 个答案:

答案 0 :(得分:18)

尝试:

/^[-+](1|10|25)$/

它将允许您的6种可能中的一种。

答案 1 :(得分:2)

我不打扰正则表达式。据推测,你最终需要将数字从String解析为int,是吗?在这种情况下,您可以立即解析它并检查结果是否符合预期,但如果这是强制性的话,这将不会强制执行“+”符号 - 但在解析之前手动检查符号将很简单。

答案 2 :(得分:0)

如果你绝对只允许指定的输入,那么下面的正则表达式就是这样做的:

/^[-+](1|10|25)$/

但如果有人输入“10” - 即“+10”但没有加号怎么办?是允许还是不允许?你还没有说明。如果是,那么+/-需要是可选的,所以正则表达式改为:

/^[-+]?(1|10|25)$/

请注意,此正则表达式还具有开始和结束锚点(即^$),这意味着它不允许字符串中的任何其他字符。没有它们,它可以匹配其他文本中包含“+20”的字符串。

答案 3 :(得分:-3)

您没有指定正则表达式应该使用的语言,但这应该有效:

[+-][12][05]?