在javascript中使用split仅获取没有查询字符串的URL
Posted
技术标签:
【中文标题】在javascript中使用split仅获取没有查询字符串的URL【英文标题】:Using split to get only the URL without query string in javascript 【发布时间】:2020-01-30 22:06:34 【问题描述】:我想拆分网站名称并只获取不带查询字符串的 URL 例子: www.xyz.com/.php?id=1
URL 可以是任意长度,所以我想拆分以仅获取 URL xyz.com
能够拆分 URL 并获取 xyz.com/php?id=1 但是我如何结束分裂并只获得 xyz.com
var domain2 = document.getElementById("domain_id").value.split("w.")[1];
【问题讨论】:
Is there any method to get the URL without query string?的可能重复 @Charmander 已经完成了这个,没有找到任何解决方案。 查询字符串是URL的部分;见en.wikipedia.org/wiki/URL。您想要的位(www.xyz.com)是“主机”。 【参考方案1】:你可以使用:
new URL()
例如——
var urlData = new URL("http://www.example.org/.php?id=1")
比
urlData.host
只会返回主机名
【讨论】:
我喜欢这样。非常。很多。但是,如果需要从路由页面中获取页面 url,这将不起作用。例如www.xyz.com/users.php?id=1 我正在尝试通过表单获取输入,那么我如何在这个答案中使用 documen.getElementById 呢? 尝试:var domain = new URL(document.getElementById("domain_id").value).host;.host
将包括www.
,OP 提到他只想要xyz.com
。此外,他的示例 URL 不包含架构(http://
部分)。
@Titus 我只需要 xyz.com【参考方案2】:
您可以使用带有match
的简单正则表达式以您想要的方式捕获主机:
var url = 'www.xyz.com/.php?id=1';
var host = url.match(/www.(.*)\//)[1];
console.log(host)
【讨论】:
【参考方案3】:只需将其添加到其他,您也可以使用此正则表达式来捕获所有内容,直到查询字符串“?”像这样;
如果您想在查询字符串之前从 url 中获取任何子页面,这也将起作用
var exp = new RegExp('^.*(?=([\?]))');
var url = exp.exec("www.xyz.com/.php?id=1");
var host = url[0];
console.log(host);
【讨论】:
以上是关于在javascript中使用split仅获取没有查询字符串的URL的主要内容,如果未能解决你的问题,请参考以下文章
如何仅使用 JavaScript 正确读取 json 文件 [重复]
javascript中slice(),splice(),split(),substring(),substr()使用方法