【问题标题】:How to identify that a URL path string contains path params in javascript?如何识别 URL 路径字符串包含 javascript 中的路径参数?
【发布时间】:2021-06-08 00:17:12
【问题描述】:

所以我要做的是确定 URL 路径字符串是否包含任何路径参数。例如:

  1. /product/1/detail ==> 这应该被识别为 true
  2. /user/sam/detail ===> 这应该被识别为 true
  3. /product ===> 这应该被识别为假

此外,我还将有一个包含类似 URl 路径列表的字典,即 ['/company/5/info', '/user/ram/detail']

[ '/product/5/detail', '/用户/内存/详细信息' ]

我不知道这是否有助于检查模式或任何形态。

约束: 要检查的 URL 可以是任何 URL。也就是说,除了 [ '/product/5/detail', '/user/ram/detail'] 之类的 URL 列表之外,我们不会有任何此类已知模式

【问题讨论】:

  • 您能否将字符串按/ 拆分并检查其长度以查看是否包含任何额外路径?例如。 const pathParams = string.split('/').length > 1
  • 但这需要我们知道前面的恒定路径,这里可以是任何东西,所以这行不通
  • 好吧,假设带有路径参数的 URL 符合您的示例似乎的结构,它会起作用。您是否使用特定的路由框架?他们可能为此提供了一些内置功能。
  • 不,我在快速服务器中检测到这一点,并且只需要通过字符串操作来完成。是的,查看任何框架路由都会有所帮助,我正在研究它,但尚未找到任何解决方案

标签: javascript string typescript url


【解决方案1】:

您可以从 URL 段中获取参数,例如

var URL='example.com/product/1/detail';
var arr=URL.split('/');//arr[0]='example.com'
                       //arr[1]='product'
                       //arr[2]='1'
                       //arr[3]='detail'

alert(arr[1]);

通过将 URL 设为数组。并使用 / 分割。

【讨论】:

  • 关键是不要抢一个,因为位置会很丰富。输入可以是任何类型的 url,所以硬编码索引不起作用。目标是确定任何提供的 url 是否有路径参数!
猜你喜欢
  • 1970-01-01
  • 2016-11-20
  • 2019-12-18
  • 1970-01-01
  • 2021-02-04
  • 2020-09-14
  • 2016-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多