With a Worker, I’m using an URLPattern
to extract an arXivId
from an URL#pathname
.
The following pattern does not match with Workers but does match with Chrome:
const pathname = '/:format(abs|pdf){/:category}?/:arxivId{v:version}?{.pdf}?{/}?';
const pattern = new URLPattern({pathname});
pattern.exec("https://arxiv.org/abs/quant-ph/0503179").pathname.groups;
// Chrome: {format: 'abs', category: 'quant-ph', arxivId: '0503179', version: undefined}
// Worker: {"format":"abs","category":"quant-ph","arxivId":"0503179","version":""}
pattern.exec("https://arxiv.org/abs/quant-ph/0503179v3").pathname.groups;
// Chrome: {format: 'abs', category: 'quant-ph', arxivId: '0503179', version: '3'}
// Worker: {"format":"abs","category":"quant-ph","arxivId":"0503179v3","version":""}
pattern.exec("https://arxiv.org/pdf/quant-ph/0503179.pdf").pathname.groups;
// Chrome: {format: 'pdf', category: 'quant-ph', arxivId: '0503179', version: undefined}
// Worker: {"format":"pdf","category":"quant-ph","arxivId":"0503179.pdf","version":""}
pattern.exec("https://arxiv.org/pdf/quant-ph/0503179v3.pdf").pathname.groups;
// Chrome: {format: 'pdf', category: 'quant-ph', arxivId: '0503179', version: '3'}
// Worker: {"format":"pdf","category":"quant-ph","arxivId":"0503179v3.pdf","version":""}
I’ve opened a ticket on GitHub.