首页 > 代码库 > js分解url参数(正则表达式,split比较)(面向对象-极简主义法应用)
js分解url参数(正则表达式,split比较)(面向对象-极简主义法应用)
一:正则表达式法
<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>注:
1、substr()与substring(start,stop) ,提取字符串中介于两个指定下标之间的字符。
重要事项:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。
参见http://www.jb51.net/w3school/js/jsref_substring.htm
2、location.search.substring(1) ,location.search设置或返回从问号 (?) 开始的 URL(查询部分)。
参见http://www.jb51.net/w3school/htmldom/prop_loc_search.htm
3、exec() 方法用于检索字符串中的正则表达式的匹配。太强大了,还不会用
参考http://www.jb51.net/w3school/js/jsref_exec_regexp.htm
4、使用 decodeURIComponent() 对编码后的 URI 进行解码。
参见http://www.jb51.net/w3school/js/jsref_exec_regexp.htm
二:split法(JAVASCRIPT GUIDE 上COPY的.)
/* * This function parses ampersand-separated name=value argument pairs from * the query string of the URL. It stores the name=value pairs in * properties of an object and returns that object. Use it like this: * * var args = getArgs( ); // Parse args from URL * var q = args.q || ""; // Use argument, if defined, or a default value * var n = args.n ? parseInt(args.n) : 10; */ function getArgs( ) { var args = new Object( ); var query = location.search.substring(1); // Get query string var pairs = query.split("&"); // Break at ampersand for(var i = 0; i < pairs.length; i++) { var pos = pairs[i].indexOf('='); // Look for "name=value" if (pos == -1) continue; // If not found, skip var argname = pairs[i].substring(0,pos); // Extract the name var value = http://www.mamicode.com/pairs[i].substring(pos+1); // Extract the value >js分解url参数(正则表达式,split比较)(面向对象-极简主义法应用)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。