javascript - ([^?&=]+)=([^?&=]*)这个正则怎么理解啊感觉不是很懂

查看:125
本文介绍了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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆