获取URL参数中promoCode值并存入sessionStorage的技术需求
提取URL中promoCode参数有效值并存入sessionStorage的JavaScript实现
实现代码
// 可替换为当前页面URL:window.location.href const targetUrl = 'https://www.constellation.com/solutions/for-your-home/residential-signup.html?zip=77493&promoCode=rockstarcontent/constellation/en/campaigns/DisplayNew2020.html%3futm_source=criteo'; // 解析URL查询参数 const urlParams = new URL(targetUrl).searchParams; let rawPromoValue = urlParams.get('promoCode') || ''; // 提取有效值:匹配开头连续的字母数字(按需调整正则,比如要匹配到第一个/为止就用/^[^\/]+/) const validPromoCode = rawPromoValue.match(/^[a-zA-Z0-9]+/)?.[0] || ''; // 存入sessionStorage if (validPromoCode) { sessionStorage.setItem('validPromoCode', validPromoCode); }
代码说明
- 要是处理当前页面的URL,直接把
targetUrl换成window.location.href就行。 - 用原生
URL和URLSearchParams解析参数,比手动拆字符串靠谱,还能自动处理URL编码的问题。 - 正则
/^[a-zA-Z0-9]+/会提取参数值开头的连续字母数字字符,刚好满足示例里提取rockstar的需求。如果你的场景里有效值是到特定分隔符(比如/或?)为止,改正则就行,比如用/^[^\/?]+/就能提取到第一个/或?之前的内容。 - 最后把提取到的有效值存进sessionStorage,键名
validPromoCode可以根据需求修改。
内容的提问来源于stack exchange,提问作者Homero Miranda
相关产品推荐
相关产品推荐

