2017-08-07 11 views
0

Ich möchte Wert von Abfrageparameter von gegebener URL. Kann ich diesen Code in einer Zeile reduzieren? Oder gibt es einen anderen besseren Weg?

const _ = require('lodash'); 
 

 
const url = `https://myWeb.com/abc/def/?xyz=sdfgkjhg&myName=javascript&status=married&sex=male&age=25`; 
 
const queryParam = url.split('&'); 
 

 
let start = _.filter(queryParam,(param) =>{ 
 
    return _.includes(param,'start'); 
 
}); 
 

 
startIndex = _.split(startIndex, '=')[1]; 
 
console.log("=========="+start);

+0

wenn es funktioniert, dann ist es eine Frage für https://codereview.stackexchange.com/ –

Antwort

0

Verwendung url Bibliothek

var urlPackage = require('url'); 
var url_parts = urlPackage.parse(url, true); 
var query = url_parts.query; 

jetzt Sie jede varaible von Abfrage zugreifen können. Zum Beispiel

console.log(query.myName); // it will print javascript 
0
var query = 'https://myWeb.com/abc/def/?xyz=sdfgkjhg&myName=javascript&status=married&sex=male&age=25'.split('?')[1].split('&') 
var final = query.reduce((m,p)=>{ 
    p = p.split('='); 
    m[p[0]] = p[1] 
    return m 
    },{}) 
console.log('***',final); 
0

können Sie die URL mit RegExp analysieren, Array#map die Ergebnisse einer Reihe von [param name, param value] Paare und eine Map aus dem Array erstellen. Jetzt können Sie einen beliebigen Parameterwert von der Karte abrufen, indem Sie paramsMap.get('paramName') verwenden.

const url = `https://myWeb.com/abc/def/?xyz=sdfgkjhg&myName=javascript&status=married&sex=male&age=25`; 
 

 
const paramsMap = new Map(url.match(/[^?&=]+=[^&=]+/g).map(s => s.split('='))); 
 
    
 
console.log(paramsMap.get('status'));

Verwandte Themen