Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不带前导零的Julian Day正则表达式_Javascript_Regex_Julian Date - Fatal编程技术网

Javascript 不带前导零的Julian Day正则表达式

Javascript 不带前导零的Julian Day正则表达式,javascript,regex,julian-date,Javascript,Regex,Julian Date,我真的很难为朱利安·戴伊创建一个不允许前导零的Reg-Ex 我正在使用JavaScript Reg Ex进行输入验证。它需要匹配1到366 示例匹配: 一, 九十九 366 159 匹配失败示例: 01 001 099 367 999 0 我在regex101上试过: ^[1-9]|[1-9][0-9]|[1-3][0-5][0-9]|[36[0-6]$ 但对于我来说,我并没有把可选部件正确地放下来。所以当我投266时,我得到了2和66的匹配。(本期正在翻译为我的。) 我曾考虑尝试对一个

我真的很难为朱利安·戴伊创建一个不允许前导零的Reg-Ex

我正在使用JavaScript Reg Ex进行输入验证。它需要匹配1到366

示例匹配:

  • 一,
  • 九十九
  • 366
  • 159
匹配失败示例:

  • 01
  • 001
  • 099
  • 367
  • 999
  • 0
我在regex101上试过:

^[1-9]|[1-9][0-9]|[1-3][0-5][0-9]|[36[0-6]$

但对于我来说,我并没有把可选部件正确地放下来。所以当我投266时,我得到了2和66的匹配。(本期正在翻译为我的。)

我曾考虑尝试对一个或多个使用
+
,但我需要不允许前导零,因此这不起作用

我已经阅读了关于询问正则表达式问题的说明,并尝试按照说明进行操作,但如果我遗漏了什么,请告诉我,我将更新我的问题。

主要问题有两个:1)应将备选方案分组,以便
^
$
锚可应用于所有问题,2)
[1-3][0-5][0-9]
部分与
160
199
260
299
不匹配,此部分应分为两个独立的分支,
[12][0-9]{2}3[0-5][0-9]

你可以用

^(?:[1-9]|[1-9][0-9]|[12][0-9]{2}|3[0-5][0-9]|36[0-6])$

详细信息

  • ^
    -字符串的开头
  • (?:
    -备选方案组:
    • [1-9]
      -1到9
    • |
      -或
    • [1-9][0-9]
      -
      10
      99
    • |
      -或
    • [12][0-9]{2}
      -
      100
      299
    • |
      -或
    • 3[0-5][0-9]
      -
      300
      359
    • |
      -或
    • 36[0-6]
      -
      360
      366
  • -替换组结束
  • $
    -以及字符串的结尾

试试@WiktorStribiżew-效果很好。作为答案张贴,我将接受。另外,如果你能解释一下,帕伦斯做了什么来修复它,我会喜欢的。(如果不是,我会弄清楚的。)