删除 URL 查询字符串中的加号 (+)
Remove plus sign (+) in URL query string
我正在尝试获取以下URL中的字符串以显示在我的网页上。
http://example.com?ks4day=Friday+September +13th
编辑:URL中的日期将因人而异,因为它被我的CRM程序合并。
我可以使用下面的代码让它显示在我的网页上,问题是加号 (+) 也通过。
例如。周五+9月+13日
我需要它做的是用空格替换加号 (+),所以它看起来像这样:
例如。9月13日星期五
我是新手,所以我在解决它时遇到了一些麻烦。
任何帮助将不胜感激。
这是我在.js文件中使用的代码
function qs(search_for) {
var query = window.location.search.substring(1);
var parms = query.split('&');
for (var i=0; i<parms.length; i++) {
var pos = parms[i].indexOf('=');
if (pos > 0 && search_for == parms[i].substring(0,pos)) {
return parms[i].substring(pos+1);;
}
}
return "";
}
这是我在网页上使用
的代码,以使其显示 <script type="text/javascript">document.write(qs("ks4day"));</script>
尽管 Bibhu 的答案适用于这种情况,但如果 URI 字符串中有编码字符,则需要添加decodeURIComponent
。您还需要确保在解码之前进行替换,以防 URI 字符串中有合法+
(如%2B
)。
我相信这是最好的通用方法:
var x = qs("ks4day"); // 'Friday+September+13th'
x = x.replace(/'+/g, '%20'); // 'Friday%20September%2013th'
x = decodeURIComponent(x); // 'Friday September 13th'
下面是它何时可能有用的示例:
var x = '1+%2B+1+%3D+2';
x = x.replace(/'+/g, '%20'); // '1%20%2B%201%20%3D%202'
x = decodeURIComponent(x); // '1 + 1 = 2'
你可以使用 replace() 来实现这个目的
var dateString = 'Friday+September+13th';
var s = dateString .replace(/'+/g, ' ');
使用正则表达式解析字符串通常容易出现很多错误。值得庆幸的是,所有现代浏览器都提供了以正确方式处理来自 url 字符串的参数URLSearchParams
:
var params = new URLSearchParams(window.location.search);
var value = params.get('ks4day');
// "Friday September 13th"
Ps:旧浏览器也有一个很好的填充。
你试过 https://www.npmjs.com/package/querystring 吗?
import { parse } from 'querystring';
parse('ks4day=Friday+September+13th')
返回
{ 'ks4day': 'Friday September 13th' }
假设你正在使用像 Webpack 这样知道如何处理导入语句的东西
如果这就是你正在做的事情,加号将不是唯一会让你为难的。撇号 (')、等于 (=)、加号 (+) 以及基本上任何不在允许的 URL 字符中的内容(请参阅百分比编码 @ 维基百科)都将被转义。
您很可能正在寻找解码URIComponent函数。
- 如何有效地将游戏数据存储在URL查询字符串中
- Javascript/jQuery URL查询参数解析
- Express编辑URL查询为“”;favicon.ico”;
- 将 URL 查询字符串传递给 Javascript 函数
- 删除在单击其他选项卡时生成的url查询元素的一部分
- 将URL查询字符串值从JavaScript编码为ASP.NET MVC
- 如何基于下拉选择构建 URL 查询字符串
- 使用 URL 查询字符串动态显示 Facebook Open Graph
- 有没有办法确定角度.js是否存在 url 查询参数
- 在 Javascript 中将对象文本编码为 URL 查询字符串
- 删除 URL 查询字符串中的加号 (+)
- 在url查询参数中传递多个url
- javascript中获取api中的Url查询字符串
- 将javascript对象转换为url查询
- 如何从URL查询字符串中获取参数值
- 使用JS/RRails和下拉表单更新URL查询字符串
- 基于URL查询的后台切换
- 表单提交将取消URL查询字符串中的一个参数
- 在Chrome中使用XMLHttpRequest获取URL查询
- 在Flow Router上使用URL查询参数进行搜索