0

所以我有下面的代码,我正在尝试获取URL的商店名称部分,而不需要在两者之间添加乱七八糟的值。

let storeName=请求.url.split(“/”);console.log(“storeNamebefore:”,storeName);storeName=storeName.toString().replace(“%20”,“”);storeName=storeName.toString().replace(“%20”,“”);storeName=storeName.toString().replace(“,data,”,“”);console.log(“storeName after:”,storeName);

我试图删除URL中显示的%20符号和“,data”部分,但我很难将整个URL缩小为字符串“Sarah’s Day Salon”,并将该值赋给storeName变量。现在,我可以将字符串缩小到下面,但字符串的开头有一个很大的间距问题,我也不确定这是否是从URL捕获“Sarah’s Day Salon”部分的最有效方法。我想知道是否有人对我如何将URL缩小到只包含商店名称有任何建议?

打印上面代码中的值:

storeName before:['','data',“Sarah的%20Day%20沙龙”]storeName after:萨拉日沙龙
  • 你能提供一个你想要修复的完整Url吗?我可以用运行代码给你一个更完整的答案 评论 2021年10月31日19:07
  • 单独打印request.url基本上就是“/data/Saha's%20Day%20Salon” 评论 2021年10月31日19:08
  • 酷,下面的答案应该对你有用 评论 2021年10月31日19:15

1答案1

重置为默认值
2

你可以使用解码URI函数,无需将%20s替换为“”,只需按原样解析url,它将删除所有特殊字符。

const url=“/data/Saha's%20天%20沙龙”;const decodedString=解码URI(url);const stringArray=decodedString.split(“/”);const storeName=字符串数组[stringArray.length-1]console.log(storeName);

2
  • 请注意at()没有完全的浏览器支持 评论 2021年10月31日20:01
  • 那么我将采用第二种选择,谢谢 评论 2021年10月31日20:05

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问自己的问题.