直接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的校驗...