2017-08-07 8 views
0

私は、指定されたURLからクエリパラメータの値を求めています。このコードを1行で減らすことはできますか?それとも同じことをするための他の良い方法がありますか?

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

それが動作するかどうか、それはhttps://codereview.stackexchange.com/のために質問です –

答えて

0

使用のURLライブラリ

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

今はクエリからどのvaraibleにアクセスすることができます。例

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

についてあなたは[PARAM名、PARAM値]のペアの配列に正規表現、Array#map結果を使用してURLを解析することができ、かつ配列からMapを作成します。今度は、paramsMap.get('paramName')を使用して、マップから任意のパラメータ値を取得できます。

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'));

関連する問題