在我的节点.js服务器中,我有一个URL变量。
它要么是"https://www"的形式。URL.com/USEFUL_PART/blabla"或"URL.com/USEFUL_PART/blabla"。
由此,我只想提取"USEFUL_PART"信息。
我如何使用Javascript做到这一点?
我知道有两种方法可以做到这一点,一种使用香草 js,另一种使用正则表达式。 我在网上搜索了,但我只找到了特定问题的SO解决方案。不幸的是,我找不到可以复制或制定解决方案的通用教程。
由于您使用的是 Express,因此您可以指定所需的 URL 部分作为参数,如下所示:
app.get('/:id/blabla', (req, res, next) => {
console.log(req.params); // Will be { id: 'some ID from the URL']
});
另请参阅:https://expressjs.com/en/api.html#req.params
嘿,如果你正在使用 express,那么你可以做这样的事情
app.get('/users/:id/blabla',function(req, res, next){
console.log(req.params.id);
}
另一种方法是使用javascript替换和拆分功能
str = str.replace("https://www.URL.com/", "");
str = str.split('/')[0];
在 Node 中.js您可以使用"URL">
https://nodejs.org/docs/latest/api/url.html
const myURL = new URL('https://example.org/abc/xyz?123');
console.log(myURL.pathname);
// Prints /abc/xyz
一种方法是检查 url 是否以http or https
开头,如果没有,则手动添加http
,使用 URL API 解析 url,从解析的 url 中获取 patname,并获取所需的部分
let urlExtractor = (url) =>{
if(!/^https?:///i.test(url)){
url = "http://" + url
}
let parsed = new URL(url)
return parsed.pathname.split('/')[1]
}
console.log(urlExtractor("https://www.URL.com/USEFUL_PART/blabla"))
console.log(urlExtractor("URL.com/USEFUL_PART/blabla"))