正則拆分url

2021-08-06 06:17:56 字數 1265 閱讀 8260

直接po**

function

getqueryitems

(url))([a-zaz.\-0-9]+)(?::(\d+))?(\/[^#?]*)?(?:\?([^#]*))?(?:#(.*))?$/;

var result = url.match(reg); //result中儲存分解下來的結果

console.log(result);

var output = {}; //返回的結果

var item =["scheme","host","port","path","queries","q","p","hash"]; //由於得到的鍵值對需要單獨處理,所以先賦值前四項

for(var i=1;i<5;i++)

console.log(output);

//分解鍵值對

var queries = result[5]; //queries儲存得到的鍵值對

var keyvalues = queries.split("&"); //keyvalues儲存進一步分解結果 ["q=234", "p=abc"]

var querysplit = {}; //儲存得到的鍵和值物件

for(var j=0;j"=")[0]] = keyvalues[j].split("=")[1];

}output["queries"] = querysplit;//將id加到物件中

output["hash"] = result[6];

console.log(output);

}getqueryitems("");

這個輸出會先輸出整體的url,然後在輸出分解後的。之所以會匹配兩遍(先整體在分部),是因為括號的原因,與括號之間的?其實無關。

//["https:8080", "https", "8080", index: 0, input: "https:8080"]你可以自己乙個乙個把括號去掉試一下。

url正則匹配

最近專案需要對使用者所提交的位址進行匹配 使用者介面只有乙個輸入框,且沒有相應標籤進行選擇 如下 當然不能給你們看專案具體什麼樣,這是乙個demo功能類似於當前專案。該專案需要對使用者所給出的字串進行處理。當前一共有三種輸入型別 外部 位址,如www.baidu.com形式 區域網內共享盤位址,如f...

正則效驗url

上篇文章講到多主題的解決方案 簡單暴力的tp5多主題方案 為了簡化配置,所以將網域名稱前的協議 http https 擷取了。後台配置時就需要效驗配置的格式是否正確,需要用到的正則 如下 param url 合法格式為 或 return bool function cuscheckurl url d...

正則校驗url

http s?複雜點為 var urlregex http https w w w u4e00 u9fa5 或 http https w w w w 當然這三種寫法不夠嚴謹,與 等明顯錯誤的url依然能匹配成功。下面是比較嚴謹的一些寫法 涉及對http,https協議,網域名稱,ip,port的校驗...