使用jquery獲取url及url參數的方法

使用jquery獲取url以及使用jquery獲取url參數是我們經常要用到的操作

1、jquery獲取url很簡單,代碼如下:

window.location.href;

其實只是用到了javascript的基礎的window對象,并沒有用jquery的知識。

2、jquery獲取url參數比較復雜,要用到正則表達式,所以學好javascript正則式多么重要的事情

首先看看單純的通過javascript是如何來獲取url中的某個參數:

        //獲取url中的參數function getUrlParam(name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //構造一個含有目標參數的正則表達式對象var r = window.location.search.substr(1).match(reg);  //匹配目標參數if (r != null) return unescape(r[2]); return null; //返回參數值}

通過這個函數傳遞url中的參數名就可以獲取到參數的值,比如url為

http://localhost:33064/WebForm2.aspx?reurl=WebForm1.aspx

我們要獲取reurl的值,可以這樣寫:

var xx = getUrlParam('reurl');

明白了javascript獲取url參數的方法,我們可以通過這個方法為jquery擴展一個方法來通過jquery獲取url參數,下面的代碼為jquery擴展了一個getUrlParam()方法

復制代碼
復制代碼
            (function ($) {$.getUrlParam = function (name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");var r = window.location.search.substr(1).match(reg);if (r != null) return unescape(r[2]); return null;}})(jQuery);
復制代碼
復制代碼

為jquery擴展了這個方法了之后我們就可以通過如下方法來獲取某個參數的值了:

   var xx = $.getUrlParam('reurl');

完整代碼:

復制代碼
復制代碼
    <script src="js/jquery-1.7.2.min.js" type="text/javascript"></script><script type="text/javascript">$(function () {//方法二:(function ($) {$.getUrlParam = function (name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");var r = window.location.search.substr(1).match(reg);if (r != null) return unescape(r[2]); return null;}})(jQuery);//方法二:var xx = $.getUrlParam('reurl');//方法一:// var xx = getUrlParam('reurl');alert(xx);});//方法一://獲取url中的參數function getUrlParam(name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //構造一個含有目標參數的正則表達式對象var r = window.location.search.substr(1).match(reg);  //匹配目標參數if (r != null) return unescape(r[2]); return null; //返回參數值}</script>
復制代碼
復制代碼

?

2014-4-23 修改

今天在用上面的方法獲取url中的參數時,url中傳遞的中文參數在解析的時候無論怎么測試,獲取的都是亂碼。經過一番調試后發現,我再傳遞參數時,對漢字編碼使用的是?encodeURI ,而上面的方法在解析參數編碼時使用的是unescape ,修改為?decodeURI 就可以了。

附: W3School中的介紹:

JavaScript unescape() 函數

定義和用法

unescape() 函數可對通過 escape() 編碼的字符串進行解碼。

參數描述
string必需。要解碼或反轉義的字符串。

?

說明

該函數的工作原理是這樣的:通過找到形式為 %xx 和 %uxxxx 的字符序列(x 表示十六進制的數字),用 Unicode 字符 \u00xx 和 \uxxxx 替換這樣的字符序列進行解碼。

提示和注釋

注釋:ECMAScript v3 已從標準中刪除了 unescape() 函數,并反對使用它,因此應該用 decodeURI() 和 decodeURIComponent() 取而代之。

?

綜上: javascript對參數編碼解碼方法要一致:

escape() ??unescape()

encodeURI() ??decodeURI()?

encodeURIComponent() ? ?decodeURIComponent() ?

?

網上找的另一種javascript獲取url中參數的方法:

復制代碼
復制代碼
<script language="JavaScript" type="text/javascript"> function GetUrlParms()    {var args=new Object();   var query=location.search.substring(1);//獲取查詢串   var pairs=query.split("&");//在逗號處斷開   for(var   i=0;i<pairs.length;i++)   {   var pos=pairs[i].indexOf('=');//查找name=value   if(pos==-1)   continue;//如果沒有找到就跳過   var argname=pairs[i].substring(0,pos);//提取name   var value=pairs[i].substring(pos+1);//提取value   args[argname]=unescape(value);//存為屬性   }return args;}var args = new Object();args = GetUrlParms();//如果要查找參數key:if(args["id"]!=undefined){//如果要查找參數key:var value1 = args["id"] ;alert(value1);}</script>
復制代碼
復制代碼

?

轉載請注明出處。

原文地址:https://www.cnblogs.com/linjiaxin/p/6004477.html

一輩子很短,努力的做好兩件事就好;第一件事是熱愛生活,好好的去愛身邊的人;第二件事是努力學習,在工作中取得不一樣的成績,實現自己的價值,而不是僅僅為了賺錢;

轉載于:https://www.cnblogs.com/best-coder/p/11550409.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447670.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447670.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447670.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

js 遍歷對象的幾種方法

第一種&#xff1a; for......in const obj {id:1,name:zhangsan,age:18}for(let key in obj){console.log(key --- obj[key])} 輸出結果&#xff1a; 第二種&#xff1a; 1&#xff09;、Object.keys&#xff08;obj&#xff09; 2&#xff09;、Object.values&#xff08…

你辛苦來人間一趟,不是來作任務的,你應該好好享受陽光、雨露和愛 ...

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 摘記以下格言&#xff0c;愿已今生不忘&#xff1a;------------------------------------------------------- 1) 忽視就是一種認輸。 …

人生五不為

人生如若以百年算&#xff0c;除去童年和老年&#xff0c;一般也有60多年的活躍期。在這活躍期中&#xff0c;人們要求學擇業、要成家育子、要做許許多多的事情&#xff0c;同時也被人世間的不少因素所困擾。這些因素都有哪些呢&#xff1f;不外乎是&#xff1a;名、利、錢、情…

解決:Intellij idea 啟動項目報錯 error:java: 無效的源發行版: 8

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.我的情況&#xff1a; 我自已電腦環境變量配置的 JDK8 &#xff0c;后來公司項目沿用 JDK7&#xff0c;我就換回了 7 。 今天打算運行…

補腎分男女,養腎如養命

腎虛是一個籠統的名詞&#xff0c;主要區分為腎陽虛和腎陰虛&#xff0c;這兩個癥形表現不一樣。 腎陽虛的病人畏寒怕冷浮腫&#xff0c;腰腿冷痛、尿頻、慢性腹瀉伴有性功能失常的表現&#xff0c;陽萎、遺精、早泄。 腎陰虛的病人主要是面容憔悴、腰背酸痛、下肢無力&#…

vscode 編輯器快捷鍵

代碼段同時縮進&#xff1a; 選中代碼段&#xff0c;按下tab鍵可以同時時代碼縮進。 先按下shifttab鍵可以取消縮進&#xff0c;向前移動。 轉載于:https://www.cnblogs.com/150536FBB/p/11555744.html

簡述 maven 命令 package、install、deploy 的區別

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 原文有圖片說明命令運行過程&#xff0c;我只記錄最終結論&#xff1a; 區別即&#xff1a; package &#xff1a;打包&#xff08;到項…

教給孩子的10句“保命金言”(圖)

1、平安成長比成功更重要。 教育孩子人人有若干權利&#xff0c;如呼吸權、生命權、隱私權&#xff0c;這些權利任何人不能剝奪。告訴孩子&#xff0c;任何人也無權剝奪他的安全權&#xff0c;安全重于一切。 2、背心褲衩覆蓋的地方不許別人摸。 孩子應當知道身體屬于自己&a…

FreeSql 訪問 Oracle 解決大小寫問題

方法一 new FreeSqlBuilder() .UseSyncStructureToUpper(true) .Build() 方法二 全局轉換實體屬性名方法&#xff0c;這種只能轉屬性。 其實是通過Aop方法完成的功能&#xff0c;Aop可以對屬性名和類名進行全局攔截處理大小寫。 new FreeSql.FreeSqlBuilder().UseEntityPropert…

linux 內核時間計量方法

定時器中斷由系統定時硬件以規律地間隔產生; 這個間隔在啟動時由內核根據 HZ 值來編 程, HZ 是一個體系依賴的值, 在 <linux/param.h>中定義或者它所包含的一個子平臺文 件中. 在發布的內核源碼中的缺省值在真實硬件上從 50 到 1200 嘀噠每秒, 在軟件模擬 器中往下到 24.…

Linux 關閉、開啟、查看 防火墻命令

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 在外部訪問CentOS中部署應用時&#xff0c;需要關閉防火墻。 關閉防火墻命令&#xff1a;systemctl stop firewalld.service 開啟防火…

男人八大折壽惡習

男人看似比女人強壯&#xff0c;可往往更容易被疾病擊倒。世界衛生組織一項調查顯示&#xff0c;男人的心臟、腸胃天生就比女人脆弱&#xff0c;心腦血管病和腸胃病的發病率是女人的好幾倍。另外&#xff0c;由于在社會中男人承擔著更多的壓力&#xff0c;心理健康也備受挑戰。…

解決: Incorrect username or password, or no permission ( Docker 方式運行 Nexus3 登陸密碼不為 admin123 、重置登陸密碼)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 登陸 輸入 admin admin123 直接報錯&#xff1a; 查日志 發現的確登陸不成功&#xff1a; 2. 后來注意到在登陸時有提示信息 &#…

已婚男人的心理五大變化

很多女生都會說&#xff1a;他結婚經常會給我驚喜&#xff0c;婚后就完全變了。人們也常說&#xff1a;男人婚前婚后總是兩個樣。那到底婚后的男人心理到底出現了哪些變化&#xff0c;造成了這些行為上的變化呢&#xff1f; 一、婚后男人變得很懶 這仿佛是所有已婚男人的變化…

Docker 方式安裝、運行 Nexus3 、重置默認密碼、推送 jar 包到私服

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 找鏡像&#xff1a; docker search nexus2. 拉取鏡像&#xff1a;&#xff08;我已經拉取過&#xff0c;不選擇版本時&#xff0c;默認…

每天2分鐘,10個簡單方法改變你的生活

千里之行始于足下。——老子 距離沒什么可怕的&#xff0c;但邁開第一步卻是困難的。——瑪麗&#xff0e;狄&#xff0e;代芳夫人 想要生活有一個積極的改變&#xff0c;并不意味著要做一個巨大的飛躍。而且我相信&#xff0c;在眾多因素中&#xff0c;信念也可使人們遠離快速…

解決:Docker 啟動的容器內部時間比服務器時間晚 8 小時,容器內部時間與宿主機時間不一致

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.docker 方式啟動容器 nexus3 &#xff0c;運行正常&#xff0c;但查日志時發現容器時間比宿主機時間晚8小時&#xff0c;內外時間不一…

從技術崗位走向管理崗位:機會是留給有準備的人

摘要&#xff1a;機會總是留給有準備的人。在被從技術崗位提拔到管理崗位之前&#xff0c;技術人員就要具備管理崗位所需要的基本素質和能力&#xff0c;將功課做在前面&#xff0c;提拔只是最后一步。作者結合自己十年的工作經驗談了自己的看法。 機會總是留給有準備的人。在…

springCloud - 第2篇 - 服務的發現 seeParam

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、創建 Client 1. file - new - module 2. spring Initializr - module SDK 選擇自己的 JDK &#xff0c;其余的可以不用填寫&…

讓你成為有錢一族的黃金理財法則?

想要獲得財富的每個人來說&#xff0c;愿意進行創富探索的意愿就是重要的財富&#xff0c;也許你不知道該怎么做&#xff0c;很多事確實有待嘗試。而愿意去探索&#xff0c;失敗&#xff0c;再探索是成功的核心所在&#xff0c;只要你有了創富的意愿&#xff0c;加以規劃&#…