-6

我希望 Reg 表达式接受 [1-48] 范围内的值。

4

2 回答 2

4

你可以试试这个正则表达式:^0*(?:[1-9]|[1-3][0-9]|4[0-8])$

但是,如果可能,我建议使用另一种数字验证机制。正如评论中已经指出的那样,正则表达式旨在匹配字符串模式。

以下是对正则表达式的部分解释:

  • ^: 字符串的开头
  • 0*: 匹配任何前导 0
  • (?::对 OR 进行分组(非捕获组)
    • [1-9]: 匹配 1 到 9
  • |: 或者
    • [1-3][0-9]: 匹配 10 到 39
  • |: 或者
    • 4[0-8]: 匹配 40 到 48
  • ):结束对 OR 的分组
  • $: 字符串结束

看到它在这个 RegExr中工作。

您可能会发现一些有用的资源,以帮助您将来自己设计/测试它们:

于 2013-02-05T11:32:38.117 回答
0

I am not understood why you using regEx for this. You can directly say

if( x >= 1 && x <=48) {
   // x will fall in range[1-48] inclusive
}
于 2013-02-05T11:57:54.060 回答