Javascript 带有多个目录的URL的正则表达式
我正在尝试匹配一种混合了数字和文本的特定格式。这些数字是不同的日期 这些应该匹配:Javascript 带有多个目录的URL的正则表达式,javascript,regex,Javascript,Regex,我正在尝试匹配一种混合了数字和文本的特定格式。这些数字是不同的日期 这些应该匹配: /shop/2017/12/04/文本字符串/另一个文本字符串 /shop/2017/12/04/文本字符串/另一个文本字符串/ 这些不应该: /shop/2017/12/04/文本字符串/另一个文本字符串/更多文本 /shop/2017/12/04/文本字符串/ /shop/2017/12/04/文本字符串 这可能吗 到目前为止,我已经做到了这一点,但在某些情况下,这似乎是不应该的: ^/shop/(.*)/
/shop/2017/12/04/文本字符串/另一个文本字符串
/shop/2017/12/04/文本字符串/另一个文本字符串/
这些不应该:
/shop/2017/12/04/文本字符串/另一个文本字符串/更多文本
/shop/2017/12/04/文本字符串/
/shop/2017/12/04/文本字符串
这可能吗 到目前为止,我已经做到了这一点,但在某些情况下,这似乎是不应该的:
^/shop/(.*)/(.*)/(.*)/(.*)/(.*)$
你需要避开/
,并且非常确定你不想把*
放在末尾,因为这将匹配最后一个//code>之后的任何内容,而这不是你所需要的;试试这个/^\/shop\/\d{4}\/\d{2}\/\d{2}(?:\/[^/]+){2}\/?$/
^\/shop
匹配开头的/shop
李>
\/\d{4}\/\d{2}\/\d{2}
匹配/year/month/day
李>
(?:\/[^/]+){2}\/?$
将另外两个文本块与末尾的可选/
匹配李>
var samples=[“/shop/2017/12/04/文本字符串/另一个文本字符串”,
“/shop/2017/12/04/文本字符串/另一个文本字符串/”,
“/shop/2017/12/04/文本字符串/另一个文本字符串/更多文本”,
“/shop/2017/12/04/string of text/”,
“/shop/2017/12/04/文本字符串”]
console.log(
samples.map(s=>/^\/shop\/\d{4}\/\d{2}\/\d{2}(?:\/[^/]+){2}\/?$/.test)
);代码>在什么基础上第一个被接受,最后一个不被接受?使用这样的正则表达式生成器可能会对您有所帮助。因此,您要说的是,您希望确保这些字符串具有/shop/
和一年/2017
以及有效的月份/08/
和日期/25/
,但也有两个字符串附加在一起在/string of text/另一串text/
末尾?