Ruby on rails 编号(月)的轨道路线约束。前导零
我不太擅长为Rails路由编写正则表达式 我希望1到12之间的数字是有效的(因为它基本上是月数),但是,我也希望01到09之间的数字也是有效的,因此单个数字的前导零是有效的 有人能帮我做这个吗 提前谢谢 一个好的开始 您正在寻找这样的东西: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。这是一个很
^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点;对不起,我的大脑还在清醒。正在编辑。