URL 正则表达式 实例
1. 获取URL指定参数
export function parseQueryString(name: string, url = location.search) { const reg = new RegExp(`(^|[?&])${name}=([^?&]*)(&|$)`, 'i'); return decodeURIComponent(reg.exec(url)?.[2] || ''); } const url = https://www.cnblogs.com/xuqichun/p/17343547.html?abc=1&id=8888888; parseQueryString('id', url);
2. 对象拼接为URL参数格式
function urlParam(obj) { return Object.keys(obj).map((k) => { const value = obj[k]; if (value === '') { return ''; } return `${k}=${value}`; }).join('&'); } urlParam({ a: 1, b: 2 }); //a=1&b=2
3. 删除URL中指定的参数
function deleteParam(name, url = location.search) { const reg = new RegExp(`([&]?${name}=[^&]*&?)`, 'g'); return url.replace(reg, '') } const url = https://www.cnblogs.com/xuqichun/p/17343547.html?abc=1&id=8888888; deleteParam('abc', url);
4. 获取路由名称( 问号前一个名称)
function getPageName(url = location.href) { const path = url?.match('[^/]+(?!.*/)'); return path && path[0].split('?')[0]; } const url = 'https://www.cnblogs.com/xuqichun/p/17343547.html?abc=1&id=8888888'; getPageName(url); // 17343547.html
5. 获取URL所有的参数名和其对应的值
function getKeyValue(url) { var result = {}; var reg = new RegExp('([\?|&])(.+?)=([^&?]*)', 'ig'); var arr = reg.exec(url); while (arr) { result[arr[2]] = arr[3]; arr = reg.exec(url); } return result; }
注意在 js 中用于匹配的还有一个叫 match,match 是字符串的方法,而 exec 是 RegExp 对象的方法。使用字符串的 match 方法,同时正则表达式指定为全局匹配,那么正则表达式中的分组将没有用,返回的结果是所有匹配正则表达式的子字符串。exec 方法没有使用全局匹配标志时,返回的时间第一个匹配的子字符,如果使用了全局匹配标志,第一次执行从头开始匹配符号的字符串,再次调用,就从上一次匹配结果后开始匹配。
参考文章:
https://blog.csdn.net/weixin_41791737/article/details/117661471 // 最简单的方法:JS去除url中某个参数--正则表达式
https://tool.oschina.net/uploads/apidocs/jquery/regexp.html // 正则表达式全集
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南