第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用正則表達(dá)式提取沒(méi)有路徑參數(shù)或查詢參數(shù)的 url 的相對(duì)路徑?

如何使用正則表達(dá)式提取沒(méi)有路徑參數(shù)或查詢參數(shù)的 url 的相對(duì)路徑?

幕布斯7119047 2023-09-28 15:48:34
在 NodeJS 環(huán)境中,如何提取相對(duì)路徑,同時(shí)不考慮數(shù)字路徑參數(shù)和所有查詢參數(shù)?假設(shè)你有一個(gè)字符串形式的 url:https://localhost:8000/api/users/available/23342?name=john目標(biāo)是api/users/available從中獲得。下面是一個(gè)實(shí)現(xiàn),但是,它非常低效,必須有一個(gè)更好的解決方案,通過(guò)正則表達(dá)式完成這一切......const url = 'https://localhost:8000/api/users/available/23342?name=john';url    .split("/")    .splice("3")    .join("/")    .split("?")[0]    .replace(/\/(\d*)$/, "");};
查看完整描述

1 回答

?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以使用單個(gè)正則表達(dá)式來(lái)替換 url。下面是帶有一堆要測(cè)試的 url 的代碼:


const urls = [

  'https://localhost:8000/api/users/available/23342?name=john',

  'https://example.com/api/users/available/23342?name=john',

  'https://example.com/api/users/available/23342',

  'https://example.com/api/users/available?name=john',

];

const regex = /^[a-z]+:\/\/[^:\/]+(:[0-9]+)?\/(.*?)(\/[0-9]+)?(\?.*)?$/;

urls.forEach((url) => {

  var result = url.replace(regex, '$2');

  console.log(url + ' ==> ' + result);

});

輸出:


https://localhost:8000/api/users/available/23342?name=john ==> api/users/available

https://example.com/api/users/available/23342?name=john ==> api/users/available

https://example.com/api/users/available/23342 ==> api/users/available

https://example.com/api/users/available?name=john ==> api/users/available

正則表達(dá)式搜索和替換的說(shuō)明:

  • ^... $- 在開始和結(jié)束處錨定

  • [a-z]+:\/\/- 掃描協(xié)議并://

  • [^:\/]+- 掃描域名(任何之前:或之前的內(nèi)容)/

  • (:[0-9]+)?- 掃描端口號(hào)(這?使得前面的捕獲成為可選)

  • \/- 掃描/(url路徑的第一個(gè)字符)

  • (.*?)- 非貪婪地掃描和捕獲任何內(nèi)容,直到:

  • (\/[0-9]+)?- 掃描 a/和 number 字符(如果有)

  • (\?.*)?- 掃描查詢參數(shù)(如果有)

  • 替換:'$2',例如僅使用第二個(gè)捕獲,其中使用不包括數(shù)字的 url 路徑


查看完整回答
反對(duì) 回復(fù) 2023-09-28
  • 1 回答
  • 0 關(guān)注
  • 224 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)