繁体   English   中英

网址解析问题:排除“ +”号

[英]URL parsing issue : excluding '+' symbol

我有一个网址

viberpa://aafff+a@viber.com?phone_number=vv+9nc3pVg==&user_id=cc+9nc3pVg==

当我尝试使用以下示例代码来解析URL时

//input code
const url = require("url");
 let uri = 'viberpa://aafff+a@viber.com?phone_number=vv+9nc3pVg==&user_id=cc+9nc3pVg==&token_created_time=2018-05-28T11:31:42.760Z'
 let uri_pasrse = url.parse(uri, true);
 console.log(uri_pasrse.query);

获取查询字符串:

{ phone_number: 'vv 9nc3pVg==',
  user_id: 'cc 9nc3pVg==',
  token_created_time: '2018-05-28T11:31:42.760Z' }

查询字符串不包括+符号。 如何使用解析方法获取原始查询字符串或建议任何其他方法?

每个查询参数必须事先进行编码。 在javascript(在这种情况下为NodeJS)中,您可以使用encodeURIComponent:

'use strict';

const url = require('url');
const uri = `viberpa://aafff+a@viber.com?phone_number=${encodeURIComponent('vv+9nc3pVg==')}&user_id=${encodeURIComponent('cc+9nc3pVg==')}&token_created_time=2018-05-28T11:31:42.760Z`;
const uri_parse = url.parse(uri, true);
console.log(uri_parse.query);

结果:

{ 
    phone_number: 'vv+9nc3pVg==',
    user_id: 'cc+9nc3pVg==',
    token_created_time: '2018-05-28T11:31:42.760Z'
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM