【发布时间】:2019-12-24 08:16:24
【问题描述】:
我需要在用户 URL 的不同输入中提取目录和文件名。
一些例子包括:
- https://foo/s3.amazonaws.com/TOP_PROD_IMAGE/WS-25612-BK_IMRO_1.jpg
- http://192.168.12.44:8090/TOP_PROD_IMAGE/R3CRDT-HZWT_IMRO_1.jpg
- www.foobar-images.s3.amazonaws.com/TOP_PROD_IMAGE/WS-25612-BK_IMRO_1.jpg
我真正需要的是TOP_PROD_IMAGE 和WS-25612-BK_IMRO_1.jpg 文件名。
因此,我需要考虑输入 http:// 或 https:// 或仅输入 www 的用户。所以我尝试使用string.split('/'),但这显然不适用于所有情况。在用户输入 http 的情况下,尽管有双 //,但有什么东西可以给我一个数组吗?谢谢!
【问题讨论】:
-
我会为此使用 path-to-regexp。它在 Express 内部使用,并且非常健壮。 npmjs.com/package/path-to-regexp 如果这真的只是一次性用例,您可以直接使用正则表达式。
-
([^/]+)\/([^/]+)$作为正则表达式? -
这个问题让我想起了一个类似的here 但是这个问题应该容易很多。
标签: javascript regex