Web 開発では、URL を解析する必要がある状況が数多くあります。この記事では主に、URL オブジェクトを使用して次のことを行う方法を学習します。これを達成します。
次の内容を含む HTML ファイルを作成し、ブラウザで開きます。
JavaScript URL parsing
この記事の内容を試してみたい場合は、
これは非常に単純ですが、明確にしておきます。 URL は、Web ページの固有のコンテンツを取得するためにブラウザに入力できる Web ページのアドレスです。これはアドレス バーで確認できます。
URL は、Uniform Resource Locator であり、インターネットから利用できるリソースの場所とアクセス方法を簡潔に表現したものです。インターネット上の標準リソースのアドレス。インターネット上のすべてのファイルには固有の URL があり、その URL には、ファイルの場所とブラウザがファイルに対して何を行うべきかを示す情報が含まれています。
また、基本的な URL パスの仕組みがよくわからない場合は、この記事を参照して学習してください。
URL はすべて同じように見えるわけではありません簡単に注意してください。URL は、次のように非常に奇妙になる場合があります:
https://example。 com: 1234/page/?a=b
http://localhost/page.html
https://154.23.54.156/page?x=...
file :///Users/username/folder/file.png
現在のページの URL を取得するのは非常に簡単です。## を使用できます。 #window.location。
console.log(window.location);
var myURL = new URL('https://example.com');
myURL を印刷して、
myURL の内容を表示できます。
console.log(myURL);
var myURL = new URL('https://example.com:4000/folder/page.html?x=y&a=b#section-2')
myURL を使用します。
href は、基本的に文字列 (テキスト) としての URL 全体です。ページの URL を URL オブジェクトではなく文字列として指定したい場合は、
window.location.href と記述できます。
console.log(myURL.href); // Output: "https://example.com:4000/folder/page.html?x=y&a=b#section-2"
ftp (ファイル転送プロトコル) や ws (WebSocket) など、他にも多くのプロトコルがあります。通常、Web サイトでは HTTP または HTTPS が使用されます。
ただし、コンピュータ上でファイルを開いている場合は、おそらくファイル プロトコルを使用していると思われます。 URL オブジェクトのプロトコル部分には: が含まれますが、
// は含まれません。
myURL を見てみましょう!
console.log(myURL.protocol); // Output: "https:"
google.com や
codetheweb.blog など、ブラウザに表示される URL の主要部分がドメイン名です。
console.log(myURL.hostname); // Output: "example.com"
example.com:1234#) ##)。ほとんどの URL にはポート番号がありませんが、これは非常にまれです。 ポート番号は、データの取得に使用されるサーバー上の特定の「チャネル」です。したがって、
があれば、複数の異なるポートで異なるデータを送信できます。ただし、通常、ドメイン名はデフォルトで特定のポートに設定されるため、ポート番号は必要ありません。 主机只是 origin 由 URL 的协议,主机名和端口组成。 它基本上是整个 URL,直到端口号结束,如果没有端口号,到主机名结束。 从 “#” 开始到最后,都是锚部分。可以将哈希值添加到 URL 以直接滚动到具有 ID 为该值的哈希值 的元素。 例如,如果你有一个 你还可以向 URL 添加查询参数。它们是键值对,意味着将特定的“变量”设置为特定值。 查询参数的形式为 请注意,如果 URL 也有 锚点(hash),则查询参数位于 锚点(hash)(也就是 ‘#’)之前,如我们的示例 URL 中所示: 但是,如果我们想要拆分它们并获取它们的值,那就有点复杂了。 要解析查询参数,我们需要创建一个 URLSearchParams 对象,如下所示: 然后可以通过调用 因此,如果我们调用 方法一:正则法 方法二:split拆分法 原文地址:https://codetheweb.blog/2019/01/21/javascript-url-parsing/ 为了保证的可读性,本文采用意译而非直译。 更多编程相关知识,请访问:编程学习网站!!myURL
: のポート番号を見てみましょう。
console.log(myURL.port);
// Output: "4000"
主机(host)
主机名
和端口
放在一起,尝试获取 myURL
的主机:console.log(myURL.host);
// Output: "example.com:4000"
来源(origin)
console.log(myURL.origin);
// Output: "https://example.com:4000"
pathname(文件名)
pathname
从域名的最后一个 “/” 开始到 “?” 为止,是文件名部分,如果没有 “?” ,则是从域名最后的一个 “/” 开始到 “#” 为止 , 是文件部分, 如果没有 “?” 和 “#” , 那么从域名后的最后一个 “/” 开始到结束 , 都是文件名部分。console.log(myURL.pathname);
// Output: "/folder/page.html"
锚点(hash)
id
为 hello
的元素,则可以在 URL 中添加 #hello
就可以直接滚动到这个元素的位置上。通过以下方式可以在 URL 获取 “#” 后面的值:console.log(myURL.hash);
// Output: "#section-2"
查询参数 (search)
key=value
。 以下是一些 URL 查询参数的示例:?key1=value1&key2=value2&key3=value3
console.log(myURL.search);
// Output: "?x=y&a=b"
使用 URLSearchParams 解析查询参数
var searchParams = new URLSearchParams(myURL.search);
searchParams.get('key')
来获取特定键的值。 使用我们的示例网址 - 这是原始搜索参数:?x=y&a=b
searchParams.get('x'
),那么它应该返回 y
,而 searchParams.get('a')
应该返回 b
,我们来试试吧!console.log(searchParams.get('x'));
// Output: "y"
console.log(searchParams.get('a'));
// Output: "b"
扩展
获取 URL 的中参数
function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
// 这样调用:
alert(GetQueryString("参数名1"));
alert(GetQueryString("参数名2"));
alert(GetQueryString("参数名3"));
function GetRequest() {
var url = location.search; //获取url中"?"符后的字串
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i
修改 URL 的中某个参数值
//替换指定传入参数的值,paramName为参数,replaceWith为新值
function replaceParamVal(paramName,replaceWith) {
var oUrl = this.location.href.toString();
var re=eval('/('+ paramName+'=)([^&]*)/gi');
var nUrl = oUrl.replace(re,paramName+'='+replaceWith);
this.location = nUrl;
window.location.href=nUrl
}
以上がJavaScript を使用して URL を解析する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。