我想赶上网址是否是博客页面。博客页面可以是:/blog
/blog/page/1
/blog/page/143
因此,page/pageNumber
是可选的。如果url是博客页面,如何创建要测试的返回true
的正则表达式?
我为包含/page/
字符串的网址创建了正则表达式,它似乎可以正常工作:
/\/blog\/page\/[1-9]([0-9]*)/
例:
> /\/blog\/page\/[1-9]([0-9]*)/.test("/blog/page/1")
true
> /\/blog\/page\/[1-9]([0-9]*)/.test("/blog/page/0")
false
> /\/blog\/page\/[1-9]([0-9]*)/.test("/blog/page/30")
true
但是如何设置
/page/number
为可选?我试过了:
/\/blog(\/page\/[1-9]([0-9]*))?/
对于错误的网址,这将返回
true
:> /\/blog(\/page\/[1-9]([0-9]*))?/.test("/blog/p")
true
最佳答案
您应该添加结束标记($
),以便停止检查。
> /\/blog(\/page\/[1-9]([0-9]*))?$/.test("/blog/p")
false
> /\/blog(\/page\/[1-9]([0-9]*))?$/.test("/blog/page/1")
true
> /\/blog(\/page\/[1-9]([0-9]*))?$/.test("/blog/page/0")
false
> /\/blog(\/page\/[1-9]([0-9]*))?$/.test("/blog/page/30")
true
> /\/blog(\/page\/[1-9]([0-9]*))?$/.test("/blog")
true
关于javascript - RegEx中的可选字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24403070/