写在前面:
关于Javascript正则表达式的使用办法在网上一搜一大堆,这里只是罗列一些个人印象较为深刻的觉得比较有意思的使用技巧,大牛绕道。
正文开始:
1) 试想下面这个场景,当我们需要获得当前url中所有参数/值键值对的时候,我们应该怎样使用正则表达式呢?假设需要处理的url如下:
http://www.baidu.com/#wd=google&rsv_bp=0&tn=baidu&rsv_spt=3&ie=utf-8&rsv_sug3=6&rsv_sug4=179&rsv_sug1=1&rsv_sug2=0&inputT=8
最优的使用办法是:var maps = {};
window.location.href.replace(/[#?&](\w+)=([\w\d]+)/g, function (all, key, value) {
maps[key] = value;
});
通过console.log()可以看到在控制台打印的maps对象:
- {
- ie: "utf",
- inputT: "8",
- rsv_bp: "0",
- rsv_spt: "3",
- rsv_sug1: "1",
- rsv_sug2: "0",
- rsv_sug3: "6",
- rsv_sug4: "179",
- tn: "baidu",
- wd: "google"
- }
这里只说明一点, 回调函数中的参数个数是由正则表达式中的子组来决定的。