我需要构建一个REGEX,它将验证可选的仅数字URL参数
匹配项:/user/123
/user/
/user
没有匹配项:/user/test
/user/123.3
我想到的最好的是
^\user\b(\/)?(0|[1-9]\d*)?$
但是首先失败的是没有匹配测试。
答案 0 :(得分:0)
在您的正则表达式中,反斜杠应成为正斜杠。如果您使用与\b
匹配的1个可选组,后跟1+个数字或单个/
,则可以省略边界/
。
(?:0|[1-9]\d*
将匹配单个零或从1开始匹配。如果要匹配1个以上的数字,可以使用\d+
例如使用交替:
^/user(?:/\d+|/)?$
说明
^
字符串的开头/user
(?:/\d+|/)?
可选的非捕获组,以匹配/和1+个数字或/ $
字符串的结尾或者regex包括数字的模式:
^/user(?:/(?:0|[1-9]\d*)|/)?$