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

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

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuā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)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        使用JavaScript解析URL的方法示例

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:00:33
        文檔

        使用JavaScript解析URL的方法示例

        使用JavaScript解析URL的方法示例:前言 在 Web 開(kāi)發(fā)中,有許多情況需要解析 URL,這篇主要學(xué)習(xí)如何使用 URL 對(duì)象實(shí)現(xiàn)這一點(diǎn)。下面話(huà)不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧 開(kāi)始 創(chuàng)建一個(gè)以下內(nèi)容的 HTML 文件,并在瀏覽器中打開(kāi)。 <html> <head> <title>
        推薦度:
        導(dǎo)讀使用JavaScript解析URL的方法示例:前言 在 Web 開(kāi)發(fā)中,有許多情況需要解析 URL,這篇主要學(xué)習(xí)如何使用 URL 對(duì)象實(shí)現(xiàn)這一點(diǎn)。下面話(huà)不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧 開(kāi)始 創(chuàng)建一個(gè)以下內(nèi)容的 HTML 文件,并在瀏覽器中打開(kāi)。 <html> <head> <title>

        獲取當(dāng)前URL

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

        試著把這個(gè)添加到我們形如寫(xiě)的的腳本中:

        console.log(window.location);

        查看瀏覽器的控制臺(tái):

        不是你想要的?這是因?yàn)樗环祷啬阍跒g覽器中看到的實(shí)際 URL 地址——它返回的是一個(gè) URL 對(duì)象。使用這個(gè) URL 對(duì)象,我們可以解析 URL 的不同部分,接下來(lái)就會(huì)講到。

        創(chuàng)建 URL 對(duì)象

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

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

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

        console.log(myURL);

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

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

        將其復(fù)制并粘貼到 <script> 元素中,以便你可以繼續(xù)操作! 這個(gè) URL 的某些部分可能不熟悉,因?yàn)樗鼈儾⒉豢偸潜皇褂?- 但你將在下面了解它們,所以不要擔(dān)心!

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

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

        href

        URL 的 href 基本上是作為字符串(文本)的整個(gè) URL。如果你想把頁(yè)面的 URL 作為字符串而不是 URL 對(duì)象,你可以寫(xiě) 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é)議是一開(kāi)始的部分。這告訴瀏覽器如何訪問(wèn)該頁(yè)面,例如通過(guò) HTTP 或 HTTPS。 但是還有很多其他協(xié)議,比如 ftp(文件傳輸協(xié)議)和 ws(WebSocket)。通常,網(wǎng)站將使用 HTTP 或 HTTPS。

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

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

        主機(jī)名(hostname)

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

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

        端口(port)

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

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

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

        主機(jī)(host)

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

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

        來(lái)源(origin)

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

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

        pathname(文件名)

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

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

        錨點(diǎn)(hash)

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

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

        查詢(xún)參數(shù) (search)

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

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

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

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

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

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

        要解析查詢(xún)參數(shù),我們需要?jiǎng)?chuàng)建一個(gè) URLSearchParams 對(duì)象,如下所示:

        var searchParams = new URLSearchParams(myURL.search);

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

        ?x=y&a=b

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

        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 的中某個(gè)參數(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
        }

        原文:https://codetheweb.blog/2019/01/21/javascript-url-parsing/

        總結(jié)

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

        文檔

        使用JavaScript解析URL的方法示例

        使用JavaScript解析URL的方法示例:前言 在 Web 開(kāi)發(fā)中,有許多情況需要解析 URL,這篇主要學(xué)習(xí)如何使用 URL 對(duì)象實(shí)現(xiàn)這一點(diǎn)。下面話(huà)不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧 開(kāi)始 創(chuàng)建一個(gè)以下內(nèi)容的 HTML 文件,并在瀏覽器中打開(kāi)。 <html> <head> <title>
        推薦度:
        標(biāo)簽: 方法 使用 js
        • 熱門(mén)焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門(mén)推薦

        專(zhuān)題
        Top
        主站蜘蛛池模板: 久久国产精品免费视频| 国产亚洲午夜精品| 美女内射无套日韩免费播放| 亚洲熟妇av一区二区三区漫画| 一级毛片视频免费观看| 一级毛片直播亚洲| 男女污污污超污视频免费在线看| 五月天婷亚洲天综合网精品偷| 又黄又大的激情视频在线观看免费视频社区在线| 麻豆精品国产免费观看| 麻豆亚洲AV成人无码久久精品 | 亚洲va中文字幕| 国产成人涩涩涩视频在线观看免费| 亚洲jizzjizz少妇| 人人狠狠综合久久亚洲高清| 一区在线免费观看| 亚洲精品少妇30p| 91精品视频在线免费观看| 亚洲一区动漫卡通在线播放| 在线日韩av永久免费观看| 福利片免费一区二区三区| 在线观看亚洲天天一三视| 性xxxx视频免费播放直播| 亚洲视频在线免费播放| 女人张开腿给人桶免费视频| 日韩一区二区三区免费播放| 亚洲国产精品国自产拍AV| 久久国产高潮流白浆免费观看| 亚洲色欲色欲www| 免费一级毛片在播放视频| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 日本不卡高清中文字幕免费| 日韩在线一区二区三区免费视频| 亚洲人成网亚洲欧洲无码久久| 亚洲电影免费观看| 特级毛片免费播放| 亚洲精品福利视频| 四虎成人精品一区二区免费网站| 又硬又粗又长又爽免费看 | 免费人成视频在线观看网站| 亚洲hairy多毛pics大全|