澳门正规赌博十大网站-澳门游戏网站
做最好的网站

通过正则格式化url查询字符串实现代码,面向对

复制代码 代码如下:

通过正则格式化url查询字符串实现代码,面向对象。复制代码 代码如下:

你可能感兴趣的稿子:

  • asp.net获取U奥迪Q5L和IP地址的章程汇总
  • ASP.NET中的U卡宴L过滤落成代码
  • js中escape对应的C#解码函数 UrlDecode
  • js分解url参数(面向对象-极简主义法应用)
  • Asp.net中Request.Url的一一属性对应的意义介绍
  • js UCR-VL参数的拼凑方法比较
  • 通过正则格式化url查询字符串实现代码,面向对象。ASP.NET jQuery 实例10 动态修改hyperlink的U中华VL值
  • 从U昂科威L中提取参数与将对象转变为ULX570L查询参数的落到实处代码
  • 至于UEscortL中的特殊符号使用介绍
  • js少校UWranglerL中的参数提抽出来作为靶子的完结代码
  • UENVISIONL中去除内定参数完毕C#代码

复制代码 代码如下:

来看项目里经过js数组split方法格式化查询字符串的,突发奇想为何无法用正则呢,质量如何?于是便有了之类代码:

复制代码 代码如下:

测量试验浏览器是chrme 25;正则达成的函数居然比数组实现的函数要慢(泪奔....)。可是辛亏,在重复施行一百万次的图景下只慢0.4秒

修改前:

var url='www.baidu.com?a=123&b=456&c=789&e=dfsdfsdfsdfsdfsdfsdf&f=46545454545454785&g=e23232dsfvdfvdf';
/**
*通过正则格式化url查询字符串实现代码,面向对象。 格式化查询字符串(正则完毕)
* @param url url地址
* @return {Object} 格式化的json对象
*通过正则格式化url查询字符串实现代码,面向对象。/
function formatUrl(url){
var reg=/(?:[?&] )([^&] )=([^&] )/g;
var data={};
function fn(str,pro,value){
data[decodeURIComponent(pro)]=decodeURIComponent(value);
}
url.replace(reg,fn);
return data;
}
/**
* 格式化查询字符串(数组达成)
* @param url url地址
* @return {Object} 格式化的json对象
*/
function formatUrl2(url){
url=url.replace(/.*?/,'');
var args={},
items=url.length?url.split("&"):[]
,item=null
,i=0
,len=items.length;
for(i=0;i<items.length;i ){
item=items[i].split("=");
args[decodeURIComponent(item[0])]=decodeURIComponent(item[1]);
}
return args;
}
var startTime=new Date();
for(var i=0;i<1000000;i ){
formatUrl2(url);
}
console.log('formatUrl2',(new Date()-startTime)); //formatUrl2 12138
startTime=new Date();
for(var i=0;i<1000000;i ){
formatUrl(url);
}
console.log('formatUrl',(new Date()-startTime)); //formatUrl 12537

<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">
function getQueryString(url) {
if(url) {
url=url.substr(url.indexOf("?") 1); //字符串截取,比自个儿在此之前的split()方法功用高
}
var result = {}, //制造三个对象,用于存name,和value
queryString =url || location.search.substring(1), //location.search设置或重临从问号 (?) 开头的 U奥迪Q3L(查询部分)。
re = /([^&=] )=([^&]*)/g, //正则,具体不会用
m;
while (m = re.exec(queryString)) { //exec()正则表明式的极度,具体不会用
result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); //使用 decodeURubiconIComponent() 对编码后的 UPRADOI 举行解码
}
return result;
}
// demo
var myParam = getQueryString("www.taobao.com?key0=a&key1=b&key2=c");
alert(myParam.key1);
</script>

本文由澳门正规赌博十大网站发布于澳门游戏网站,转载请注明出处:通过正则格式化url查询字符串实现代码,面向对