js獲取url中參數名也參數值

来源:http://www.cnblogs.com/qujian15/archive/2017/06/08/6960993.html
-Advertisement-
Play Games

要撮利用js獲取url中參數名也參數值這個不多見了,但我今天需要這樣操作,下麵我來給大家介紹一下具體的實例方法。 在已知參數名的情況下,獲取參數值,使用正則表達式能很容易做到。 js的實現方法如下: function getValue(url, name) { var reg = new RegEx ...


要撮利用js獲取url中參數名也參數值這個不多見了,但我今天需要這樣操作,下麵我來給大家介紹一下具體的實例方法。  


在已知參數名的情況下,獲取參數值,使用正則表達式能很容易做到。


js的實現方法如下:

 代碼如下 複製代碼

function getValue(url, name) {
 var reg = new RegExp('(\?|&)' + name + '=([^&?]*)', 'i');
 var arr = url.match(reg);

 if (arr) {
  return arr[2];
 }

 return null;
}

方法一:正則分析法

 

 代碼如下 複製代碼

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;    
}

這樣調用:

alert(GetQueryString("參數名1"));
alert(GetQueryString("參數名2"));
alert(GetQueryString("參數名3"));

如果想獲取所有的參數名和其對應的值,同樣也可以使用正則表達式的方法,


js實現方法:

 代碼如下 複製代碼

function getKeyValue(url) {
 var result = {};
 var reg = new RegExp('([\?|&])(.+?)=([^&?]*)', 'ig');
 var arr = reg.exec(url);

 while (arr) {
  result[arr[2]] = arr[3];

  arr = reg.exec(url);
 }

 return result;
}

註意在js中用於匹配的還有一個叫match,match是字元串的方法,而exec是RegExp對象的方法。使用字元串的match方法,同時正則表達式指定為全局匹配,那麼正則表達式中的分組將沒有用,返回的結果是所有匹配正則表達式的子字元串。exec方法沒有使用全局匹配標誌時,返回的時間第一個匹配的子字元,如果使用了全局匹配標誌,第一次執行從頭開始匹配符號的字元串,再次調用,就從上一次匹配結果後開始匹配。

下麵提供php的實現方法:

 代碼如下 複製代碼

function getKeyValue($url) {
 $result = array();
 $mr = preg_match_all('/(?|&)(.+?)=([^&?]*)/i', $url, $matchs);

 if ($mr !== FALSE) {
  for ($i = 0; $i < $mr; $i++) {
   $result[$matchs[2][$i]] = $matchs[3][$i];
  }
 }

 return $result;
}

php的preg_match_all方法把匹配的結果存放在第三個指定的參數中,是一個二維數組。第一維度是分組信息的數組,即第一個數組存放的是所有匹配的完整字元串,第二個數組存放的是第一個()對應的值得,第二維度是分組的值。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • __doc__ 查看尖的描述信息 __module__表示當前操作的對象所在的模塊 __class__表示當前操作的對象所屬的類 __init__構造方法 通過類創建對象自動執行 __del__析構方法,當前對象在記憶體中被釋放自動斬妖執行 __call__對象後面加括弧觸發執行 __dict__查看 ...
  • 初學時,對不太熟悉的markdown語法,有個簡單記錄 [公式][1] 公式一般用Latex書寫,線上[Latex編輯器][2]可以使用,有以下幾種方法供選擇 有然後保存為圖片gif格式,使用img標簽進行引用。 使用Google Chart的伺服器 `` 給個例子, 顯示結果為(博客園的markd ...
  • 怎麼樣的SDK算是一個好的SDK? 在做SDK的過程中我們走過非常多的彎路,是一個難以想象的學習過程,我們總結一個好的SDK應該具備的特質: 易用性,穩定性,輕量,靈活,優秀的支持. 一、易用性 因為工作的關係我接觸了很多的開發者,其中有行業知名的公司的開發者,也有極小的個人開發者.有一個現象很有意 ...
  • 設計源於需求卻高於需求。 《軟體方法》上冊(五章)所表述的邏輯: 願景 業務建模 需求 分析 設計 1. 願景: 明白軟體的意義是什麼,幫助或者提高了現有系統的那些方面,減少了那些成本。 利潤 = 需求 - 設計 這個公式成立的前提是需求都已經實現,不同的設計會花費不同的成本。但看完上篇,我覺得應該 ...
  • 程式想要通過簡單地設置一些參數就生成一個不同的軟體,在不同的情況下可能只用到一部分代碼,就沒必要把所有的代碼都寫進去,就可以用條件編譯,通過預編譯指令設置編譯條件,在不同的需要時編譯不同的代碼。 (一)條件編譯方法 條件編譯是通過預編譯指令來實現的,主要方法有:1、#if, #elif, #else ...
  • 1、document.domain+iframe的設置2、動態創建script3、利用iframe和location.hash4、window.name實現的跨域數據傳輸5、使用HTML5 postMessage6、利用flash 7、jsonp 本地的話,可以利用花瓶、gulp等工具 ...
  • 總結: toggle對整個元素的可見樣式屬性進行動畫過渡處理 slideToggle對元素做高與透明度過渡處理 fadeToggle對元素僅做透明度過渡處理 ...
  • 文章轉載:http://www.jianshu.com/p/8f74cfb146f7 網站是畢業設計的作品,開發這個網站的目的主要用於記錄一些筆記,以及聚合一些資訊信息,也算自己在網路世界中的一塊靜地吧,可以在這裡一些技術上想法的實踐。 網站最初前端使用vue開發,在前段時間由於項目的開發進度已經不 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...