有没有更简洁标准的方法提取URL中最后斜杠与问号之间的字符串?
可选的更规范/简洁实现方案
方案1:使用浏览器原生URL API(最符合标准,容错性最高)
这是W3C标准推荐的URL处理方式,会自动解析路径、查询参数等结构,不需要手动拆分字符串,避免边缘情况出错:
const url = new URL(window.location.href) // pathname 自动提取了域名后、查询参数前的路径部分,格式为 `/item/目标id` const recordId = url.pathname.split('/').pop() // 如果路径可能存在尾部斜杠,可改用下面的写法过滤空值: // const recordId = url.pathname.split('/').filter(Boolean).pop()
即使后续URL的查询参数缺失、或者路径前面出现其他item/字符,该方案都能正确拿到最后一段路径的值。
方案2:正则匹配(更简洁,适合固定格式场景)
如果你的URL格式确定不会变化,可以用正则一行完成捕获,代码更短:
const recordId = window.location.href.match(/\/item\/([^?]+)/)[1]
正则会直接匹配/item/之后到?之前的所有字符,不需要两次调用split方法。
内容的提问来源于stack exchange,提问作者Kirk Ross
相关产品推荐
相关产品推荐

