91JS原生:node.js对URL的解析规则

Posted gushixianqiancheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了91JS原生:node.js对URL的解析规则相关的知识,希望对你有一定的参考价值。

用node.js搭建的服务器环境,其内置模块URL可以把浏览器传过来的URL进行解析,并根据解析结果做出相应的响应。
1、引入node内置模块url,用url模块的parse方法来解析winUrl
```javascript
var url = require(‘url‘);
var winUrl = url.parse(‘http://www.zhu.cn:80/ccc/index.html?name=zxt&age=26#33‘, true);
console.log(winUrl);
winUrl
protocol: ‘http:‘,
slashes: true,
auth: null,
host: ‘www.zhu.cn:80‘,
port: ‘80‘,
hostname: ‘www.zhu.cn‘,
hash: ‘#33‘,
search: ‘?name=zxt&age=26‘,
query: name: ‘zxt‘, age: ‘26‘ ,当第二行的true不存在时query: ‘name=zxt&age=26‘,
pathname: ‘/ccc/index.html‘,
path: ‘/ccc/index.html?name=zxt&age=26‘,
href: ‘http://www.zhu.cn:80/index.html?name=zxt&age=26#33‘
```

4、封装解析方法(解析URL中的问号参数值以及HASH值)
```javascript:run
function queryURLParameter(url)
var obj = ;
var reg = /([^?=&#]+)=([^?=&#]+)/g;
url.replace(reg, function ()
obj[arguments[1]] = arguments[2];
);
reg = /#([^?=&#]+)/;
if (reg.test(url))
obj[‘HASH‘] = reg.exec(url)[1];

return obj;

var str1="https://www.baidu.com/newspage/data/landingsuper?AAA=1111&BBB=222&CCC=333#1234";
var abc1=queryURLParameter(str1);
console.log("第1次输出:",abc1);

function hashA(url)
var reg=/#([^#&=?]+)/;
if(reg.test(url))
return reg.exec(url)[1];


var str2="https://www.baidu.com/newspage/data/landingsuper?AAA=1111&BBB=222&CCC=333#1234"
var abc2=hashA(str2);
console.log("第2次输出:"+abc2);

var ary=["零","一","二","三","四","五","六","七","八","九"];
var str3="今年是2017年";
var abc3=str3.replace(/\d/g,function ()
return ary[arguments[0]]
);
console.log("第3次输出:"+abc3);

/*正则匹配输出 我是[你的朋友]钱成*/
var str4 = ‘我是<img src="haha.png" alt="你的朋友"/>钱成‘;
var reg=/(.+)<(.+)t="(.+)"\/>(.+)/;
var AAA=reg.exec(str4);
var abc4=AAA[1]+"["+AAA[3]+"]"+AAA[4];
console.log("第4次输出:"+abc4);
```

以上是关于91JS原生:node.js对URL的解析规则的主要内容,如果未能解决你的问题,请参考以下文章

nodejs搭建服务器手册

nodejs搭建服务器手册

在 Node.js 中使用原生 ES 模块方法解析

原生node.js创建服务器

Google App Engine Node.js 应用程序 - “解析 app.yaml 时出错:未知 url 处理程序类型”

node中的url常用方法解析