简体   繁体   English

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

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

I have a URL 我有一个网址

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

when I tried with the following sample code for parsing the URL 当我尝试使用以下示例代码来解析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);

getting query strings: 获取查询字符串:

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

the query strings are excluded the + symbol. 查询字符串不包括+符号。 How can I get the original query strings using parsing method or suggest any alternative method? 如何使用解析方法获取原始查询字符串或建议任何其他方法?

Each query parameter must be encoded previously. 每个查询参数必须事先进行编码。 In javascript (NodeJS in this case) you can use encodeURIComponent: 在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);

Result: 结果:

{ 
    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