suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Finden Sie ein reguläres JS-Muster (übernehmen Sie URL-Parameter)

?id=001&from=1我用reactthis.props.location.searchIch habe den Hauptteil herausgenommen, ich verstehe die Regeln nicht sehr gut, bitte geben Sie mir einen Rat

天蓬老师天蓬老师2811 Tage vor505

Antworte allen(8)Ich werde antworten

  • 某草草

    某草草2017-05-18 10:49:04

    var str = "?id=001&from=1";
    JSON.parse("{" + 
                     str.replace("?", "\"")
                        .replace(new RegExp(/(&)/g),'\",\"')
                        .replace(new RegExp(/(=)/g),'\":\"')
                   + "\"}")

    Antwort
    0
  • 某草草

    某草草2017-05-18 10:49:04

    var reg = /([^?=&]+)=([^?=&]*)/g,
        str = window.location.href,
        tempObj = {};
       
    str.replace(reg,function(str,key,val){
        var k = decodeURIComponent(key),
            v = decodeURIComponent(val);
        tempObj[k] = v || "";
        return str;
    });

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-18 10:49:04

    location里边不应该还有一个query的吗?难道我记混乱了。。。

    可以考虑以下做法:

    JSON.parse(
        '{' + 
            locatio.search
                .replace('?', '')
                .replace(/&/g, ',')
                .replace(/(\w+)=?(\w+|)/ig, '"$1":"$2"') + '}')

    有可能出现:"?a=1&b=2&c=",甚至 "?a=1&b=2&c"

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-05-18 10:49:04

    "?id=001&from=1".replace('?', '').replace('&', ',').replace(/(w+)=(w+)/g, '$1:$2')

    Antwort
    0
  • 阿神

    阿神2017-05-18 10:49:04

    var parms = location.search.replace("?","").split("&");
    var json = {};
    for(let i = 0, n = parms.length; i<n; i++ ){
        let t = parms[i].split("=");
        json[ t[0] ] = t[1];
    }
    

    楼上JSON.parse的方法挺方便的,不过要考虑ie8-兼容问题,我写的这种不需要考虑兼容但是要麻烦点

    Antwort
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-18 10:49:04

    function GetRequest() {

            var url = location.search; //获取url中"?"符后的字串
            var theRequest = new Object();
            if (url.indexOf("?") != -1) {
                var str = url.substr(1);
                strs = str.split("&");
                for(var i = 0; i < strs.length; i ++) {
                    theRequest[strs[i].split("=")[0]]=(strs[i].split("=")[1]);
                }
            }
            return theRequest;
        }

    Antwort
    0
  • 迷茫

    迷茫2017-05-18 10:49:04

    (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?

    Antwort
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-18 10:49:04

    function get_param(name){
        var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"),
        r = window.location.search.substr(1).match(reg);
        if(r!=null)return  decodeURI(r[2]); return null;
    }

    Antwort
    0
  • StornierenAntwort