gpt4 book ai didi

javascript - 如何使用 replace 方法重写 url 路径?

转载 作者:行者123 更新时间:2023-12-01 16:24:54 25 4
gpt4 key购买 nike

我的项目正在使用本地服务器代理。它使用正则表达式将 api 代理到我的本地文件路径。

这是我的场景:

我本地的http请求是'/api/bpm/fetch-action-progress-bar?bpm=123',它最终会找到'app/data/bpm/fetch-action-progress-bar'的json文件名.json'.

前提:只重写以'/api'开头的路径,且api路径不确定。

实现“myRegex”以满足以下三个示例:

示例 1

'/api/bpm/fetch-action-progress-bar?bpm=123'.replace(myRegex, 'app/data/$1.json')

需要:'app/data/bpm/fetch-action-progress-bar.json'

示例 2

'/api/bpm/fetch-action-progress-bar'.replace(myRegex, 'app/data/$1.json')

需要:'app/data/bpm/fetch-action-progress-bar.json'

示例 3

'/api/yt/order/export?id=1212'.replace(myRegex, 'app/data/$1.json')

需要:'app/data/yt/order/export.json'

我只能用replace方法,帮我实现一个'myRegex'来解决。我的困难是查询参数可能不存在。

最佳答案

/.*?(?!.*\/)([\w\-]+)[^?]?.*/

使查询参数'?'可选。

我在 jsfiddle.net 中检查过这个

console.log('/api/bpm/fetch-action-progress-bar?bpm=123'.replace(/.*?(?!.*\/)([\w\-]+)[^?]?.*/, 'app/data/$1.json'))  

console.log('/api/bpm/fetch-action-progress-bar'.replace(/.*?(?!.*\/)([\w\-]+)[^?]?.*/, 'app/data/$1.json'))

演示和解释在这里: https://regex101.com/r/HBvG3K/10regex101.com/r/HBvG3K/11

根据聊天中的要求更新

\/api\/([\w\-\/]+).*

关于javascript - 如何使用 replace 方法重写 url 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63389960/

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