javascript - ([^?&=]+)=([^?&=]*)这个正则怎么理解啊感觉不是很懂
本文介绍了javascript - ([^?&=]+)=([^?&=]*)这个正则怎么理解啊感觉不是很懂的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
function getQueryObject(url) {
url = url == null ? window.location.href : url;
var search = url.substring(url.lastIndexOf("?") + 1);
var obj = {};
var reg = /([^?&=]+)=([^?&=]*)/g;
search.replace(reg, function (rs, $1, $2) {
var name = decodeURIComponent($1);
var val = decodeURIComponent($2);
val = String(val);
obj[name] = val;
return rs;
});
return obj;
}
解决方案
/([^?&=]+)=([^?&=]*)/g;
中括号里的^表示非的意思,所以[^?&=]表示非&?的字符。接一个=号。后面再接非&?的字符。
这个正则是匹配url地址的参数的。
var url = 'www.163.com?name=养猪场&function=养猪';
console.log(url.match(/([^?&=]+)=([^?&=]*)/g));
//["name=养猪场", "function=养猪"]
//匹配的就是url中的'name=养猪场'和'&function=养猪'
推荐一个正则神站:https://regexper.com/。
这篇关于javascript - ([^?&=]+)=([^?&=]*)这个正则怎么理解啊感觉不是很懂的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文