javascript - JavaScript 正则表达式将 url 分解为域和路径
问题描述
我需要一个正则表达式将给定的 url 分成两部分。
part1 --> 域(包括协议 [http 或 https] 如果存在)。
第 2 部分 --> 余数
因此是这样的:
示例 1
let url = "https://www.example.com/asdasd/123asdsd/sdasd?bar=1"
正则表达式返回
domain = https://www.example.com
remaining path = /asdasd/123asdsd/sdasd?bar=1
示例 2
let url = "www.example.com/asdasd/123asdsd/sdasd?bar=1"
正则表达式返回
domain = www.example.com
remaining path = /asdasd/123asdsd/sdasd?bar=1
示例 3
let url = "example.com/asdasd/123asdsd/sdasd?bar=1"
正则表达式返回
domain = example.com
remaining path = /asdasd/123asdsd/sdasd?bar=1
示例 4
let url = "http://example.com"
正则表达式返回
domain = http://example.com
remaining path = null
解决方案
使用URL
.
var url = new URL("https://www.example.com/asdasd/123asdsd/sdasd?bar=1");
var domain = `${url.protocol}//${url.host}`;
var path = `${url.pathname}?${url.searchParams.toString()}`;
console.log(`domain = ${domain}`)
console.log(`remaining path = ${path}`)
有人用 URL 打败了我,所以我也会发布正则表达式。
var url = "https://www.example.com/asdasd/123asdsd/sdasd?bar=1";
var matches = /(https?:\/\/.*?)([/$].*)/.exec(url);
var domain = matches[1];
var path = matches[2];
console.log(`domain = ${domain}`)
console.log(`remaining path = ${path}`)
推荐阅读
- python-3.x - 自动化脚本在本地正常工作,但不适用于容器
- javascript - VUE如何替换json变量
- php - 如何更改 Swagger UI 中生成的 APi Platform 中的 SQL 查询
- c# - C# 中的 SQL 参数化,使用 SQL 声明的变量
- dart - 为什么这个函数最终返回?
- github - 使用 GitHub API 提交的最接近标签
- r - 绑定数组的维度
- split - New Line Arduino 拆分字符串 - GSM 模块响应
- opencv - Gtk-WARNING **:无法打开显示:来自 gcp ubuntu
- c - 我试图实现链表以在节点中存储学生详细信息