JavaScript编写可返回URL中cxd参数值的自定义函数咨询
现有代码问题修正
- 变量名拼写错误:split操作后返回的数组存储在
url变量中,但后续取值用了未定义的url1,会直接抛出引用错误 - 无异常容错:如果URL格式非法、或不存在
cxd参数,searchParams.get('cxd')会返回null,直接调用split会触发报错 - 未封装为函数、用打印代替返回值:不符合「以函数返回值输出结果」的要求
最终可用函数实现
/** * 从URL中提取cxd参数的目标值 * @param {string} [urlStr] - 待解析的URL字符串,默认取当前页面地址 * @returns {string|null} 提取到的目标值,异常时返回null */ function getCxdTargetValue(urlStr = window.location.href) { try { // 解析URL const url = new URL(urlStr); // 读取cxd参数 const cxdValue = url.searchParams.get('cxd'); // 参数不存在直接返回null if (!cxdValue) return null; // 按下划线拆分参数值 const cxdParts = cxdValue.split('_'); // 仅当拆分后存在至少2个片段时返回中间的目标值,否则返回null return cxdParts.length >= 2 ? cxdParts[1] : null; } catch (err) { // URL格式非法等异常直接返回null return null; } }
使用示例
// 传入指定URL的调用方式 const targetCxd = getCxdTargetValue('http://blablabla=Cell&utm_mediun=test&cxd=cxd_2288_356025'); // 直接使用返回值即可,无需打印/弹窗,可直接用于后续业务逻辑
内容的提问来源于stack exchange,提问作者aldo
相关产品推荐
相关产品推荐

