<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
        主站蜘蛛池模板: 日韩人妻无码精品久久免费一| 中文字幕无码播放免费| 九九九精品视频免费| 无码国产精品一区二区免费16| 成人毛片18女人毛片免费| 亚洲女人被黑人巨大进入| 亚洲免费中文字幕| 一级做受视频免费是看美女 | 亚洲国产精品一区二区成人片国内 | 亚洲AV日韩AV天堂久久| 亚洲国产成人久久一区二区三区| 久久精品一区二区免费看| 免费午夜爽爽爽WWW视频十八禁| 亚洲精品福利视频| 国产日韩久久免费影院| 在线中文高清资源免费观看| 亚洲一区二区三区日本久久九| 免费国产高清毛不卡片基地| 毛片在线看免费版| 亚洲色av性色在线观无码| a毛片在线免费观看| 免费人成视频x8x8入口| 一个人看的免费高清视频日本| 亚洲精品无码永久在线观看你懂的 | 亚洲国产91在线| 日韩免费高清大片在线| 亚洲三级中文字幕| 91大神免费观看| 亚洲AV无码乱码国产麻豆| 97在线视频免费公开视频| 久久久久亚洲AV片无码下载蜜桃| 国产在线观看片a免费观看| 亚洲精品一区二区三区四区乱码| 久久久国产精品福利免费| 亚洲国产综合无码一区| 亚洲一级免费视频| 亚洲中字慕日产2020| 午夜亚洲福利在线老司机| 男人和女人高潮免费网站 | 奇米影视亚洲春色| 成在人线av无码免费高潮水|