gpt4 book ai didi

javascript - 用于从 url 中提取不带扩展名的文件名的正则表达式

转载 作者:行者123 更新时间:2023-11-30 11:16:10 25 4
gpt4 key购买 nike

我有这两个不同的 url

https://www.examplecom/dir/dir1/filename
https://www.example.com/dir/dir1/filename?start=83477&index=2

并且想在不使用后视正则表达式的情况下提取文件名,因为我打算在 JSON 脚本中使用它。

/[^/]*$/ 是我目前所拥有的,但它只适用于第一个 url。

最佳答案

你可以使用

s.match(/([^\/?#]+)(?:[?#].*)?$/)[1]

参见 regex demo .它将支持文件名后跟 ?# 或字符串结尾的情况。

详情

  • ([^\/?#]+) - 第 1 组捕获除 /? 以外的 1 个或多个字符>#
  • (?:[?#].*)? - ?# 的可选序列,后跟任意 0+ 个字符尽可能多
  • $ - 字符串结尾。

JS 演示:

var strs = ['https://www.examplecom/dir/dir1/filename', 'https://www.example.com/dir/dir1/filename?start=83477&index=2', 'https://www.example.com/dir/dir1/filename#index', 'https://www.examplecom/dir/'];
var rx = /([^\/?#]+)(?:[?#].*)?$/;
for (var s of strs) {
var m = s.match(rx);
if (m) {
console.log(s, "=>", m[1]);
} else {
console.log(s, "=> No match!");
}
}

关于javascript - 用于从 url 中提取不带扩展名的文件名的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51450325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com