Javascript 将正则表达式通配符替换为动态文本

Javascript replace regex wildcard with dynamic text

提问人:cicoria 提问时间:10/2/2023 最后编辑:Barmarcicoria 更新时间:10/2/2023 访问量:53

问:

我需要提取文本,但有些部分是动态的和变化的

这是我的var

htts://query1.data.site.com/v7/finance/download/MYTEXT?period1=1664641287&period2=1696177287&interval=1d&events=history&includeAdjustedClose=true

我只需要服用MYTEXT

这些值会发生变化

MYTEXT
1664641287
1696177287
1d

我尝试过,但我不知道如何删除动态部件string.replace

我想到的解决方案是删除 MYTEXT 之前和之后的所有文本,但我无法编写可以执行此操作的命令

JavaScript 正则表达式 字符串 拆分

评论

3赞 Patrick Evans 10/2/2023
你试过使用URL吗?它可以为您解析路径和查询参数
0赞 matt richards 10/2/2023
如果格式始终相同i=str.indexOf('?');j=str.lastIndexOf('/',i);s=str.slice(j+1,i);
0赞 Wyck 10/2/2023
该字符串几乎看起来像一个 URL。只是我从未听说过这个计划。htts

答:

0赞 Barmar 10/2/2023 #1

使用与最后一个/?

const url = 'htts://query1.data.site.com/v7/finance/download/MYTEXT?period1=1664641287&period2=1696177287&interval=1d&events=history&includeAdjustedClose=true';
const regexp = /[^\/]+(?=\?)/;
match = url.match(regexp);
console.log(match);

2赞 Wyck 10/2/2023 #2

用于解析 URL 字符串。URL

您可以获取 to extract ,这将是用 ' 分隔的最后一段。pathnameMYTEXT/

您可以获取 来检索特定查询参数的值,例如searchParamsperiod1=1664641287

const urlString = 'htts://query1.data.site.com/v7/finance/download/MYTEXT?period1=1664641287&period2=1696177287&interval=1d&events=history&includeAdjustedClose=true';

const url = new URL(urlString);

// You can get the last segment of the path like this 
console.log(url.pathname.split('/').slice(-1)[0]);

// You can also get query params like this if you need them
console.log(url.searchParams.get('period1'));