javascript - 准备要传递到 API 查询的字符串(转义特殊字符)

标签 javascript reactjs gatsby

我在使用字符串和 Fetch API 时遇到了一些困难。我有一个 React 组件,它接受一个字符串,将它设置为一个变量,然后构建一个我可以传递给 fetch() 的查询变量。

问题在于考虑导致 404 响应的特殊字符。以下是我正在使用的字符串的一些示例,以及它们所需的输出。

INPUT >>> DESIRED OUTPUT

Something's going on here >>> somethings-going-on-here

Dungeons & dragons >>> dungeons-%26-dragons

It's happening, right here >>> its-happening-right-here

我有以下正则表达式,但它还不完整(缺少将 & 转换为 %26)

replace(/,?\s+/g, '-')

我曾研究过使用 encodeURIComponent 函数,但它似乎没有考虑单引号,这就是我使用正则表达式的原因。

最佳答案

https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

var params = new URLSearchParams();
params.set('param1',`Something's going on here`);
params.toString();

您还可以使用一个库来为您处理它: https://www.npmjs.com/package/query-string https://www.npmjs.com/package/qs

关于javascript - 准备要传递到 API 查询的字符串(转义特殊字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61191561/

相关文章:

javascript - Gatsby.js - Express 服务器的代理

javascript - 使用 DOM 在 javascript 中制作数独表

css - react 图 GL : map not taking the entire width

javascript - React Router 无法使用嵌套路由正确加载图像

javascript - 使用 React.forwardRef 与自定义 ref prop 的值(value)

javascript - 期望输入结束, "ADD", "SUB", "MUL", "DIV",得到意外的 "RPAREN"

javascript - Angular httpPromise

javascript - 按结束年份和开始年份排序

javascript - 在 React 的输入中传递事件和参数 onChange

gatsby - 如何将变量从 'context' 传递给页面查询? | Gatsby