国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

nodejs中轉換URL字符串與查詢字符串詳解

2024-05-06 16:11:04
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了nodejs中轉換URL字符串與查詢字符串詳解,需要的朋友可以參考下
 
 

一個完整的URL字符串中,從"?"(不包括?)到"#"(如果存在#)或者到該URL字符串結束(如果不存在#)的這一部分稱為查詢字符串.

可以使用Query String模塊中的parse方法將該字符串轉換為一個對象,parse方法的使用方式如下所示:

querystring.parse(str,[sep],[eq],[options]);

str表示被轉換的查詢字符串,

sep.字符串中的分隔符,默認是&

eq.該字符串中的分配符,默認為=."="左邊是key,右邊是value

options:是一個對象,可以在該對象中使用一個整數值類型的maxKeys屬性來指定轉換后的對象中的屬性個數,如果將maxKeys屬性值設定為0.其效果等于不使用maxKeys屬性值

 

復制代碼代碼如下:

 var querystring=require("querystring");
 var str="username=guoyansi&age=40&sex=male";
 var res=querystring.parse(str);
 console.log("1:%j",res);//1:{"username":"guoyansi","age":"40","sex":"male"}
 res=querystring.parse(str,"!");
 console.log("2:%j",res);//2:{"username":"guoyansi&age=40&sex=male"}
 res=querystring.parse(str,"&");
 console.log("3:%j",res);//3:{"username":"guoyansi","age":"40","sex":"male"}
 str="username=guoyansi!age=40!sex=male";
 res=querystring.parse(str,"!");
 console.log("4:%j",res);//4:{"username":"guoyansi","age":"40","sex":"male"}
 res=querystring.parse(str,"!","=");
 console.log("5:%j",res);//5:{"username":"guoyansi","age":"40","sex":"male"}
 res=querystring.parse(str,"!",":");
 console.log("6:%j",res);//6:{"username=guoyansi":"","age=40":"","sex=male":""}
 res=querystring.parse(str,"!","=",{maxKeys:2});
 console.log("7:%j",res);//7:{"username":"guoyansi","age":"40"}

 

stringify是將字符串轉化成查詢字符串的格式.

querystring.stringify(obj,[sep],[eq])

 

復制代碼代碼如下:

 var querystring=require("querystring");
 var res= querystring.stringify({"username":"guoyansi","age":"40","sex":"male"});
 console.log(res);//username=guoyansi&age=40&sex=male
 res=querystring.stringify({"username":"guoyansi","age":"40","sex":"male"},"!");
 console.log(res);//username=guoyansi!age=40!sex=male
 res=querystring.stringify({"username":"guoyansi","age":"40","sex":"male"},"&",":");
 console.log(res);//username:guoyansi&age:40&sex:male
 res=querystring.stringify({"username":"guoyansi","age":["40","24"]},"&","=");
 console.log(res);//username=guoyansi&age=40&age=24

 

在url模塊中,可以使用parse()方法將URL字符串轉換為一個對象,根據URL字符串中的不同內容,該對象可能具有的屬性及其含義如下.

href:被轉換的原URL字符串.
protocol:客戶端發出請求時使用的協議.
slashes:在協議與路徑中間時候使用"//"分隔符.
host:URL字符串中的完整地址及端口號,該地址可能為一個IP地址,也可能為一個主機名.
auth:URL字符串中的認證信息部分.
hostname:URL字符串中的完整地址,該地址可能為一個IP地址,也可能為一個主機名.
search:Url字符串中的查詢字符串,包含起始字符"?"
path:url字符串中的路徑,包含查詢字符串.
query:url字符串中的查詢字符串,不包含起始字符"?",或根據該查詢字符串而轉換的對象(根據parse()方法所用參數而決定query屬性值);
hash:url字符串中的散列字符串,包含起始字符"#".
 
url.parse(urlstr,[parseQueryString]);
urlStr:是需要轉換的URL字符串,
parseQueryString:是一個布爾值,當參數為true時,內部使用querystring模塊查詢字符串轉換為一個對象,參數值為false時不執行該轉換操作,默認是false

 

復制代碼代碼如下:

 var url=require("url");
 var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";
 var res=url.parse(str);
 console.log(res);

 

 

復制代碼代碼如下:

{ protocol: 'http:',
  slashes: true,
  auth: 'user:pass',
  host: 'host:8080',
  port: '8080',
  hostname: 'host',
  hash: '#name1',
  search: '?username=sisi&age=24&sex=male',
  query: 'username=sisi&age=24&sex=male',
  pathname: '/,com/users/user.php',
  path: '/,com/users/user.php?username=sisi&age=24&sex=male',
  href: 'http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1' }

 

 

復制代碼代碼如下:

 var url=require("url");
 var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";
 var res=url.parse(str,true);
 console.log(res);

 

 

復制代碼代碼如下:

{ protocol: 'http:',
  slashes: true,
  auth: 'user:pass',
  host: 'host:8080',
  port: '8080',
  hostname: 'host',
  hash: '#name1',
  search: '?username=sisi&age=24&sex=male',
  query: { username: 'sisi', age: '24', sex: 'male' },
  pathname: '/,com/users/user.php',
  path: '/,com/users/user.php?username=sisi&age=24&sex=male',
  href: 'http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1' }

 

第一個例子和第二個例子不同之處在于parse的第二個參數,導致了結果中的query的不同

可以將一個url轉換過的對象轉換成一個url字符串.

 

復制代碼代碼如下:

 var url=require("url");
 var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";
 var res=url.parse(str,true);
 console.log(url.format(res));

 

結果是:

http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1

以上就是node中轉換URL字符串與查詢字符串的全部內容了,好好研究下,其實挺簡單的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 高碑店市| 绥江县| 雅安市| 定结县| 太仓市| 金沙县| 新晃| 陵川县| 家居| 万宁市| 嘉义县| 安图县| 梅河口市| 龙口市| 昔阳县| 威信县| 南城县| 资源县| 尚志市| 潜江市| 天峨县| 喀什市| 棋牌| 洪雅县| 承德县| 靖宇县| 莱西市| 六安市| 江油市| 景洪市| 师宗县| 蓬莱市| 临江市| 巩留县| 淅川县| 合水县| 东乌珠穆沁旗| 郁南县| 轮台县| 甘谷县| 台中市|