<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript解析URL的方法介紹(代碼示例)

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 19:27:25
        文檔

        JavaScript解析URL的方法介紹(代碼示例)

        JavaScript解析URL的方法介紹(代碼示例):本篇文章給大家?guī)淼膬?nèi)容是關(guān)于JavaScript解析URL的方法介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。在 Web 開發(fā)中,有許多情況需要解析 URL,這篇主要學(xué)習(xí)如何使用 URL 對象實現(xiàn)這一點(diǎn)。開始創(chuàng)建一個以下內(nèi)容的 HT
        推薦度:
        導(dǎo)讀JavaScript解析URL的方法介紹(代碼示例):本篇文章給大家?guī)淼膬?nèi)容是關(guān)于JavaScript解析URL的方法介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。在 Web 開發(fā)中,有許多情況需要解析 URL,這篇主要學(xué)習(xí)如何使用 URL 對象實現(xiàn)這一點(diǎn)。開始創(chuàng)建一個以下內(nèi)容的 HT

        獲取當(dāng)前URL

        獲取當(dāng)前頁面的 URL 非常簡單 - 我們可以使用 window.location

        試著把這個添加到我們形如寫的的腳本中:

        console.log(window.location);

        查看瀏覽器的控制臺:

        2684691852-5c5d2d539afdd_articlex.png

        不是你想要的?這是因為它不返回你在瀏覽器中看到的實際 URL 地址——它返回的是一個 URL 對象。使用這個 URL 對象,我們可以解析 URL 的不同部分,接下來就會講到。

        創(chuàng)建 URL 對象

        很快就會看到,可以使用 URL 對象來了解 URL 的不同部分。如果你想對任何 URL 執(zhí)行此操作,而不僅僅是當(dāng)前頁面的 URL,該怎么辦? 我們可以通過創(chuàng)建一個新的 URL 對象來實現(xiàn)。 以下是如何創(chuàng)建一個:

        var myURL = new URL('https://example.com');

        就這么簡單! 可以打印 myURL 來查看 myURL 的內(nèi)容:

        console.log(myURL);

        1918200372-5c5d306b4924e_articlex.png

        出于本文的目的,將 myURL 設(shè)置為這個值:

        var myURL = new URL('https://example.com:4000/folder/page.html?x=y&a=b#section-2')

        將其復(fù)制并粘貼到 <script> 元素中,以便你可以繼續(xù)操作! 這個 URL 的某些部分可能不熟悉,因為它們并不總是被使用 - 但你將在下面了解它們,所以不要擔(dān)心!

        URL 對象的結(jié)構(gòu)

        使用 URL 對象,可以非常輕松地獲取 URL 的不同部分。 以下是你可以從 URL 對象獲得的所有內(nèi)容。 對于這些示例,我們將使用上面設(shè)置的 myURL

        href

        URL 的 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"

        協(xié)議 (protocol)

        URL的協(xié)議是一開始的部分。這告訴瀏覽器如何訪問該頁面,例如通過 HTTP 或 HTTPS。 但是還有很多其他協(xié)議,比如 ftp(文件傳輸協(xié)議)和 ws(WebSocket)。通常,網(wǎng)站將使用 HTTP 或 HTTPS。

        雖然如果你的計算機(jī)上打開了文件,你可能正在使用文件協(xié)議! URL對象的協(xié)議部分包括,但不包括 //。 讓我們看看 myURL 吧!

        console.log(myURL.protocol);
        // Output: "https:"

        主機(jī)名(hostname)

        主機(jī)名是站點(diǎn)的域名。 如果你不熟悉域名,則它是在瀏覽器中看到的URL的主要部分 - 例如 google.comcodetheweb.blog

        console.log(myURL.hostname);
        // Output: "example.com"

        端口(port)

        URL 的端口號位于域名后面,用冒號分隔(例如 example.com:1234)。 大多數(shù)網(wǎng)址都沒有端口號,這種情況非常罕見。

        端口號是服務(wù)器上用于獲取數(shù)據(jù)的特定“通道” - 因此,如果我擁有 example.com,我可以在多個不同的端口上發(fā)送不同的數(shù)據(jù)。 但通常域名默認(rèn)為一個特定端口,因此不需要端口號。 來看看 myURL 的端口號:

        console.log(myURL.port);
        // Output: "4000"

        主機(jī)(host)

        主機(jī)只是主機(jī)名端口放在一起,嘗試獲取 myURL 的主機(jī):

        console.log(myURL.host);
        // Output: "example.com:4000"

        來源(origin)

        origin 由 URL 的協(xié)議,主機(jī)名和端口組成。 它基本上是整個 URL,直到端口號結(jié)束,如果沒有端口號,到主機(jī)名結(jié)束。

        console.log(myURL.origin);
        // Output: "https://example.com:4000"

        pathname(文件名)

        pathname 從域名的最后一個 “/” 開始到 “?” 為止,是文件名部分,如果沒有 “?” ,則是從域名最后的一個 “/” 開始到 “#” 為止 , 是文件部分, 如果沒有 “?” 和 “#” , 那么從域名后的最后一個 “/” 開始到結(jié)束 , 都是文件名部分。

        console.log(myURL.pathname);
        // Output: "/folder/page.html"

        錨點(diǎn)(hash)

        從 “#” 開始到最后,都是錨部分。可以將哈希值添加到 URL 以直接滾動到具有 ID 為該值的哈希值 的元素。 例如,如果你有一個 idhello 的元素,則可以在 URL 中添加 #hello 就可以直接滾動到這個元素的位置上。通過以下方式可以在 URL 獲取 “#” 后面的值:

        console.log(myURL.hash);
        // Output: "#section-2"

        查詢參數(shù) (search)

        你還可以向 URL 添加查詢參數(shù)。它們是鍵值對,意味著將特定的“變量”設(shè)置為特定值。 查詢參數(shù)的形式為 key=value。 以下是一些 URL 查詢參數(shù)的示例:

        ?key1=value1&key2=value2&key3=value3

        請注意,如果 URL 也有 錨點(diǎn)(hash),則查詢參數(shù)位于 錨點(diǎn)(hash)(也就是 ‘#’)之前,如我們的示例 URL 中所示:

        console.log(myURL.search);
        // Output: "?x=y&a=b"

        但是,如果我們想要拆分它們并獲取它們的值,那就有點(diǎn)復(fù)雜了。

        使用 URLSearchParams 解析查詢參數(shù)

        要解析查詢參數(shù),我們需要創(chuàng)建一個 URLSearchParams 對象,如下所示:

        var searchParams = new URLSearchParams(myURL.search);

        然后可以通過調(diào)用 searchParams.get('key')來獲取特定鍵的值。 使用我們的示例網(wǎng)址 - 這是原始搜索參數(shù):

        ?x=y&a=b

        因此,如果我們調(diào)用 searchParams.get('x'),那么它應(yīng)該返回 y,而 searchParams.get('a')應(yīng)該返回 b,我們來試試吧!

        console.log(searchParams.get('x'));
        // Output: "y"
        console.log(searchParams.get('a'));
        // Output: "b"

        擴(kuò)展

        獲取 URL 的中參數(shù)

        方法一:正則法

        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;
        }
        // 這樣調(diào)用:
        alert(GetQueryString("參數(shù)名1"));
        alert(GetQueryString("參數(shù)名2"));
        
        alert(GetQueryString("參數(shù)名3"));

        方法二:split拆分法

        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 < strs.length; i ++) {
         theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
         }
         }
         return theRequest;
        }
        var Request = new Object();
        Request = GetRequest();
        // var 參數(shù)1,參數(shù)2,參數(shù)3,參數(shù)N;
        // 參數(shù)1 = Request['參數(shù)1'];
        // 參數(shù)2 = Request['參數(shù)2'];
        // 參數(shù)3 = Request['參數(shù)3'];
        // 參數(shù)N = Request['參數(shù)N'];

        修改 URL 的中某個參數(shù)值

        //替換指定傳入?yún)?shù)的值,paramName為參數(shù),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
        }

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript解析URL的方法介紹(代碼示例)

        JavaScript解析URL的方法介紹(代碼示例):本篇文章給大家?guī)淼膬?nèi)容是關(guān)于JavaScript解析URL的方法介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。在 Web 開發(fā)中,有許多情況需要解析 URL,這篇主要學(xué)習(xí)如何使用 URL 對象實現(xiàn)這一點(diǎn)。開始創(chuàng)建一個以下內(nèi)容的 HT
        推薦度:
        標(biāo)簽: 方法 介紹 js
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 日韩电影免费在线| 成人黄软件网18免费下载成人黄18免费视频 | 亚洲福利视频一区| 中文在线免费视频| 亚洲va中文字幕无码久久不卡| 一级毛片成人免费看a| 亚洲中文字幕丝袜制服一区| www免费黄色网| 亚洲精品无码久久久久| a级毛片在线视频免费观看| 国产成人亚洲综合色影视| 四虎www成人影院免费观看| 亚洲最大福利视频| 国产在线不卡免费播放| 美女黄频a美女大全免费皮| 国产中文在线亚洲精品官网| 久久国产美女免费观看精品| 午夜一区二区免费视频| 色九月亚洲综合网| 国产午夜亚洲精品午夜鲁丝片| a毛片免费观看完整| 亚洲美女色在线欧洲美女| 91视频精品全国免费观看| 国产精品国产亚洲精品看不卡| 四虎国产精品永久免费网址| 亚洲综合最新无码专区| 久久99免费视频| 亚洲精品乱码久久久久久中文字幕| 亚洲日韩在线观看免费视频| 亚洲va在线va天堂va888www| 四色在线精品免费观看| 国产高清对白在线观看免费91| 亚洲Av永久无码精品三区在线| 亚洲免费观看在线视频| 国产精品亚洲а∨无码播放不卡| 国产L精品国产亚洲区久久 | 国产成人精品日本亚洲网址| 亚洲女同成人AⅤ人片在线观看| 免费无码又爽又刺激高潮视频| 亚洲日本VA午夜在线电影| 亚洲欧洲国产精品香蕉网|