JS解析url


使用js解析url ,返回一個對象,使用函數:

<script type="text/javascript">
var url="www.taobao.com?key0=a&key1=b&key2=c"; function parseQueryString(url){ var str=url.split("?")[1], items=str.split("&"); var arr,name,value; for(var i = 0, l = items.length; i < l; i++){ arr=items[i].split("="); name= arr[0]; value= arr[1]; this[name]=value; } } var obj=new parseQueryString(url); alert(obj.key1) </script>

改成函數直接量:

<script type="text/javascript"> 
var url="www.taobao.com?key0=a&key1=b&key2=c"; var pQString={ createNew:function(url){ var str=url.split("?")[1], items=str.split("&"); var arr,name,value; for(var i = 0, l = items.length; i < l; i++){ arr=items[i].split("="); name= arr[0]; value= arr[1]; this[name]=value; } } } var obj=new pQString.createNew(url); alert(obj.key1) </script>

改成更高效的形式:

<script type="text/javascript"> function getQueryString(url) { if(url) { url=url.substr(url.indexOf("?")+1); //字符串截取,比我之前的split()方法效率高 } var result = {}, //創建一個對象,用於存name,和value queryString =url || location.search.substring(1), //location.search設置或返回從問號 (?) 開始的 URL(查詢部分)。 re = /([^&=]+)=([^&]*)/g, //正則,具體不會用 m; while (m = re.exec(queryString)) { //exec()正則表達式的匹配,具體不會用 result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); //使用 decodeURIComponent() 對編碼后的 URI 進行解碼 } return result; } // demo var myParam = getQueryString("www.taobao.com?key0=a&key1=b&key2=c"); alert(myParam.key1); </script> 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM