首页 > 解决方案 > 如何在 Javascript 中使用正则表达式在不指定固定长度的情况下截断部分 url?

问题描述

我正在编写一个程序,使用 Javascript 将我的文件系统中的路径与从 SQL 数据库中提取的 url 匹配。拉取的 URL 结构如下:

http://examplesite.com/wp-content/uploads/YYYY/MM/17818380_1556368674373219_6750790004844265472_n-1.jpg
http://examplesite.com/wp-content/uploads/YYYY/MM/17818380_1556368674373219_6750790004844265472_n.jpg
https://examplesite.com/wp-content/uploads/YYYY/MM/10643960_909727132375975_2074842458_n-44x55.jpg
http://examplesite.com/wp-content/uploads/YYYY/MM/10643960_909727132375975_2078842458_n-320x150.jpg

等等。有些有http,有些有https。

我试图将文件与网址匹配

if(files[i] === urlsfromdb[j].substring(50,urlsfromdb[j].length-4))...

我想在/之后...MM之后得到所有内容,但上面有时包括前导斜杠,这反过来又破坏了程序。我怎样才能用正则表达式做到这一点?我想得到所有的 jpg,我正在使用 NPM glob 来做到这一点。

此外,对于具有 -WWWxHHH.jpg 的文件,可能是 2 或 3 个 Ws 或 Hs,我也想删除这些文件;来自数据库的 URLS 永远不会真正拥有它们,但文件会。

标签: javascriptregexglob

解决方案


use a regular expression to remove everything up to the last slash.

urlsfromdb[j].replace(/^.*\//, '')

推荐阅读