这是一个高端的,逼格爆表的JavaScript正则表达式及字符串匹配函数的综合应用。
本人非常受教,链接来自 http://jingyan.baidu.com/article/870c6fc30e01ecb03fe4be0f.html?qq-pf-to=pcqq.c2c 百度经验。
以下是问题描述:
--------------------------
给你一字符串,如图
str = "https://www.baidu.com?name=lili&age=20&gender=男";
要求以尽可能“高逼格”的方式转换成kv对象形式,如下图。
该怎么办?
常规的截取字符串的方式我就不说了,没意思。
下面进入正题。
其实代码很短:
function parseStrObjByRegExp(strDes) {
var obj = {};
strDes.replace(/(\w+)(?:=([^;]*))?/g, function (str, key, value) {
obj[key] = value;
});
return obj;
}
var obj = parseStrObjByRegExp("name=jack;age=20;love=lily");
具体自己体会,最后得到的obj对象就是键值对形式。
这段代码涉及到两个知识点:
我分别找两个截图如下:
这是两个比较冷门又很实用的知识点,我很佩服写出这段代码的人。
===================
拓展:
从正则表达式的 ?:*** 让我们拓展一下:
以及
也就是 与?结合使用的一些正则表达式模式。
很值得研究一下。