js如何獲取url所傳遞的引數和引數值
大家知道可以使用url傳遞引數值,本站幾乎隨便一個連結都會有傳值,既然要傳遞值,那麼自然要獲取,否則就沒有任何意義了,下面就通過例項介紹一下如何使用javascript獲取url傳遞的引數和引數值。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼(function(){ var urlToObject=function(url){ var urlObject = {}; if (/\?/.test(url)){ var urlString=url.substring(url.indexOf("?")+1); var urlArray=urlString.split("&"); for(var i=0,len=urlArray.length;i<len;i++){ var urlItem=urlArray[i]; var item = urlItem.split("="); urlObject[item[0]]=item[1]; } return urlObject; } }; var testUrl="http://softwhy.com/index.php?a=0&b=1&c=2"; var result=urlToObject(testUrl); for (var key in result){ console.log(key+"="+result[key]); } })();
以上程式碼可以輸出url的引數和對應的引數值,下面就介紹一下實現過程。
一.實現原理:
1.判斷url是否含有引數。在本程式碼中使用正規表示式if(/\?/.test(url))判斷url中是否含有?,如果含有問號,那麼就說明此連結中含有引數,然後執行if語句中的程式碼。
2.獲取url中的引數和引數值。在這裡是使用split()函式分割字串,依次實現此功能。
二.程式碼註釋:
1.(function(){})(),宣告一個匿名函式並執行。
2.var urlToObject=function(url){},宣告一個函式,此函式的引數是一個超連結。
3.var urlObject={},宣告一個物件直接量。
4.if(/\?/.test(url)) ,判斷連結中是否含有?,也就是是否含有引數。
5.var urlString=url.substring(url.indexOf("?")+1),擷取url問號只有的字串。
6.var urlArray=urlString.split("&"),使用split()函式以&為標記分割字串,並生成一個陣列。這樣每一個陣列元素就是一個引數和引數值對。
7.for(var i=0,len=urlArray.length;i<len;i++),使用for迴圈遍歷urlArray陣列。
8.var urlItem=urlArray,將指定索引的陣列值賦值給變數urlItem。
9.var item=urlItem.split("="),再使用=分割字串並生成一個陣列,因為urlArray陣列每一個元素都是一個引數和引數值對,例如"a=0",這樣再經過分割,生成新陣列的第一項就是引數名稱,第二個項就是引數值。
10.urlObject[item[0]]=item[1],將引數名稱作為物件的屬性名稱,引數值作為物件的屬性值。
11.return urlObject,返回物件。
12.var testUrl=http://softwhy.com/index.php?a=0&b=1&c=2,用作測試的url。
13.var result=urlToObject(testUrl),將引數和引數值轉換成物件的屬性和屬性值,並返回此物件。
14.for(var key in result),遍歷此物件.
三.相關閱讀:
1.substring()函式可以參閱javascript substring()一章節。
2.indexOf()函式可以參閱JavaScript String indexOf()一章節。
3.split()函式可以參閱JavaScript split()一章節。
4.for in語句可以參閱javascript for in一章節。
相關文章
- js獲取url傳遞引數,js獲取url?號後面的引數JS
- JavaScript 獲取 url 傳遞引數值JavaScript
- JavaScript獲取url傳遞的引數值JavaScript
- 獲取url中?後面傳遞的引數
- C#獲取URL引數值C#
- js實現獲取URL引數JS
- JS的方法引數傳遞(按值傳遞)JS
- C# 解析獲取Url引數值C#
- 獲取url上的引數
- URL引數獲取/轉碼
- 引數的定義和引數的傳遞
- 深入學習js之——引數按值傳遞#9JS
- 引數傳遞
- js解析url引數JS
- 如何通過WinDbg獲取方法引數值
- Python的函式引數傳遞:傳值?引用?Python函式
- react獲取當前頁面的url引數React
- Mybatis引數傳遞MyBatis
- ABAP 方法呼叫的引數傳遞裡,透過引用傳遞的方式,能修改原始引數值嗎?
- Spring AOP獲取攔截方法的引數名稱跟引數值Spring
- 三種方法實現:獲取 url 中的引數
- JS獲取瀏覽器位址列的多個引數值的任意值JS瀏覽器
- 請求引數的傳遞
- 函式的引數傳遞函式
- 使用js修改url地址引數JS
- js去除url中指定引數JS
- 路由元件傳遞引數路由元件
- React事件傳遞引數React事件
- Laravel 檔案上傳和獲取請求引數Laravel
- SOLIDWORKS如何獲取模型中的引數Solid模型
- gofiber: 獲取引數Go
- 使用url引數傳遞SAP Analytics Cloud filter的一個例子CloudFilter
- 超簡潔的js獲取位址列引數JS
- js獲取帶#號連結後的引數JS
- js中 函式引數的 傳值/傳引用 問題JS函式
- Go語言引數傳遞是傳值?還是傳引用 ?Go
- Python引數傳遞,既不是傳值也不是傳引用Python
- C++引數的傳遞方式C++
- 面試官問:Go 中的引數傳遞是值傳遞還是引用傳遞?面試Go