Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
Ruby on rails 编号(月)的轨道路线约束。前导零_Ruby On Rails_Regex_Routes_Constraints - Fatal编程技术网

Ruby on rails 编号(月)的轨道路线约束。前导零

Ruby on rails 编号(月)的轨道路线约束。前导零,ruby-on-rails,regex,routes,constraints,Ruby On Rails,Regex,Routes,Constraints,我不太擅长为Rails路由编写正则表达式 我希望1到12之间的数字是有效的(因为它基本上是月数),但是,我也希望01到09之间的数字也是有效的,因此单个数字的前导零是有效的 有人能帮我做这个吗 提前谢谢 一个好的开始 您正在寻找这样的东西: ^0?[1-9]|1[0-2]$ ^和$匹配开头和结尾,这样就不会匹配像a09b这样的废话。|类似于OR语句,优先级最低,因此在其左侧,0?[1-9]表示任何一个字符1-9,前面是可选的0,右侧是1[12]表示任何一个字符12前面有一个必需的1。这是一个很

我不太擅长为Rails路由编写正则表达式

我希望1到12之间的数字是有效的(因为它基本上是月数),但是,我也希望0109之间的数字也是有效的,因此单个数字的前导零是有效的

有人能帮我做这个吗

提前谢谢

一个好的开始

您正在寻找这样的东西:

^0?[1-9]|1[0-2]$
^
$
匹配开头和结尾,这样就不会匹配像
a09b
这样的废话。
|
类似于OR语句,优先级最低,因此在其左侧,
0?[1-9]
表示任何一个字符
1-9
,前面是可选的
0
,右侧是
1[12]
表示任何一个字符
12
前面有一个必需的1。

这是一个很好的开始

您正在寻找这样的东西:

^0?[1-9]|1[0-2]$

^
$
匹配开头和结尾,这样就不会匹配像
a09b
这样的废话。
类似于OR语句,优先级最低,因此在它的左边,
0?[1-9]
表示任何一个字符
1-9
前面有一个可选的
0
,在它的右边,
1[12]
表示任何一个字符
12
前面有一个必需的1。

试试这个正则表达式:
/^(0?[1-9]| 1[012])$/

试试这个正则表达式:
/^(0?[1-9]| 1[012])$/

你缺少了10的0。应该是
1[012]$
,但是带任意前导零数的1-9仍然有效,所以也要检查它。对于1到9“^0*[1-9]$”.checkout www.rubular.com非常感谢您的解释!非常有用!就像一个charm@Dmitri,此答案中的正则表达式不正确(请参见上面的注释)因此,请确保在第一个零之后包括额外的零和*,如surase.prasad和我提到的。@link664-你是对的。现在是凌晨3点;我的大脑还在清醒,抱歉。正在编辑。你10个都缺少0。应该是
1[012]$
,但是任何前导零数的1-9仍然有效,所以也要检查一下。对于1到9“^0*[1-9]$”。查看www.rubular.com非常感谢您的解释!非常有用!工作起来就像一个charm@Dmitri,此答案中的正则表达式不正确(请参见上面的注释)因此,请确保在第一个零之后包括额外的零和*,如surase.prasad和我提到的。@link664-你说得对。现在是凌晨3点;对不起,我的大脑还在清醒。正在编辑。