我想知道该网址是否是博客页面。 博客页面可以是:
/博客
/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 - RegExp 中的可选字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24403070/