javascript - URL 解析问题:不包括“+”符号
问题描述
我有一个网址
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'
}
推荐阅读
- python - 使用烧瓶模板渲染 HTML 时,绘图会被弯曲
- php - 在 WordPress 中的哪里添加我的 PHP 表单处理程序文件?
- ios - Swift:无法使用实现 Objectmappers Mappable 的自定义类返回类型覆盖方法
- jenkins - Groovy - 如何正则表达式具有子字符串 QA 的字符串?
- perl - 使用触发器运算符跟踪基于缩进的状态
- office-ui-fabric - Office UI Fabric 组件定义之间的一致性
- wordpress - 第一次点击后手风琴标签不打开
- laravel - 在 laravel 中获取外键数据
- recursion - 递归 vue 组件的延迟加载
- python - Google Cloud SDK Python 客户端:如何列出 Cloud Storage 存储桶中的文件?