我有一个 WordPress 网站,并且使用 AJAX 来更新存档而不是页面重新加载(用非常基本的术语)。
所以我可以通过:
http://mysite.com/events/2012/10/17
http://mysite.com/events/2012/10
http://mysite.com/events/2012
我正在寻找一个 JS/jQuery 正则表达式方法来检索其中的任何一个。到目前为止,我有以下内容:
var linkUrl = 'http://mysite.com/events/2012/10';
var linkDate = linkUrl.match(/\d{4}(\/\d{2})+/);
console.log( linkDate ); // output - ["2012/10", "/10", index: 8, input: "/events/2012/10"]
它似乎找到了 2 个匹配项,其中第二个不是我想要的。我确信这在我的正则表达式中是一件简单的事情。
最佳答案
我会尝试这个正则表达式 /(\d{4})(?:\/(\d{2}))?(?:\/(\d{2}))?$/
:
'http://mysite.com/events/2012'.match(/(\d{4})(?:\/(\d{2}))?(?:\/(\d{2}))?$/)
// => ["2012", "2012", undefined, undefined]
'http://mysite.com/events/2012/03'.match(/(\d{4})(?:\/(\d{2}))?(?:\/(\d{2}))?$/)
// => ["2012/03", "2012", "03", undefined]
'http://mysite.com/events/2012/03/21'.match(/(\d{4})(?:\/(\d{2}))?(?:\/(\d{2}))?$/)
// => ["2012/03/21", "2012", "03", "21"]
关于javascript - 从 Javascript/jQuery 中的 URL 字符串检索日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17321182/