RegEx只匹配5的倍数从5到150?

时间:2016-03-03 15:05:35

标签: javascript regex

我不知道如何处理下面列出的条件。

我可以一次执行一个场景,但不确定如何包含对一个字段的所有限制:

  • 在字段中允许使用1,2或3位数

  • 如果用户只输入1位数字 它只能是5

  • 如果用户输入2位数字 - 第一个数字可以是1-9
    - 第二位数字只能是05

  • 如果用户输入3位数字 - 第一个数字只能是1
    - 第二个数字可以是0-5
    •如果第二位数为0-4,则第三位数字只能是05
    •如果第二个数字是5,则第三个数字只能是0

此外,如果可能:
每个方案后面都可以加上字符.00或不是(.00应该是可选的条目)

1 个答案:

答案 0 :(得分:1)

使用交替|令牌和......

您可以将替换令牌|与行标记的开头^和结束$结合使用,以捕获一位,二位或三位数匹配。

然后,您可以选择将.00字符串与非捕获组(?:)和可选的?令牌匹配,以匹配该组中的零个或一个。

<强>更新

/^5(?:\.00)?$|^[1-9][05](?:\.00)?$|^1[0-4][05](?:\.00)?$|^150(?:\.00)?$/gm

评论者bobble bubble提供了这个更简洁的版本。

/^(?:5|[1-9][05]|1[0-4][05]|150)(?:\.00)?$/gm

enter image description here

来源:Regexper.com