一道關於js正則表達式的面試題


 

 

這道面試題明顯是要用到正則表達式來解決的,由於太久沒有寫正則表達式了,一時之間竟然寫不出來,所以記錄一下筆記,下面直接上代碼:

 1 function parseUrl(str) {
 2     // 判斷是否傳入參數
 3     if (str) {
 4         var obj = {};
 5         var queryArr = [];
 6         // 正則表達式規則
 7         var re = /^(http\w?):\/\/([0-9a-zA-Z\.]+)([a-zA-Z0-9\/]+)\?([a-zA-Z0-9\=\&]+)#([0-9a-zA-Z\.]+)/;
 8         // 利用正則表達式將字符串分組
 9         var reArr = re.exec(str);
10         if (reArr) {
11             obj.peotocol = reArr[1];
12             obj.host = reArr[2];
13             obj.path = reArr[3];
14             queryArr = reArr[4].split(/[\&\=]+/);
15             obj.query = {};
16             for (var i = 0; i < queryArr.length; i += 2) {
17                 obj.query[queryArr[i]] = queryArr[i + 1];
18             }
19             obj.hash = reArr[5]
20             return obj;
21         } else {
22             return null;
23         }
24     } else {
25         return null;
26     }
27 }

 

完。

 


免責聲明!

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



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