2016-11-20 4 views
-1

Ich habe ein Array von Zeichenfolgen; Sie sind URLs. Ich möchte von jeder URL eine bestimmte Nummer abrufen.Grab Nummer aus einem Array von String - Regex - Javascript

Diese URLs sind in diesem Format:

"http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk" 

Ich möchte den fünften stelligen Code nach banner?l_id greifen, die 111111 ist. Merken Sie sich den fünften Zifferncode und die anderen können beliebige Zahlen sein, es sind nicht immer Nullen oder Einsen.

Array Beispiel:

["http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk", 
"http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk", 
"http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk", 
"http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk", 
"http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk" 
] 

Wie ich schon sagte, ich habe eine Reihe von URL-Strings und versucht, es herauszufinden, wie die fünfte stelligen Code mit Javascript zu greifen; Regex könnte mir helfen, dies zu erreichen, aber ich bin nicht vertraut mit Regex.

Mir wurde gesagt, Python könnte einfacher sein, dies zu lösen, aber ich baue ein Chrom ext. welches JS benutzt.

Vielen Dank für Ihre Hilfe im Voraus!

+1

Haben Sie etwas noch versucht? Siehe http://stackoverflow.com/questions/10889391/regex-get-numbers-after-certain-character-string –

+1

'/ \/banner \? L_id = (?: \ W + -) {4} (\ w +)/'und ergreift die gefangene Gruppe # 1 – anubhava

+0

@anubhava das hat funktioniert, danke! Ich lerne immer noch Regex, und ich habe ein paar Regex-Codes erkannt, aber ich bin mir nicht sicher, was es nach 'l_id' macht. Macht es Ihnen nichts aus zu erklären, was hinter diesem Code steckt? Nochmals, vielen Dank für Ihre Hilfe – medev21

Antwort

2

Man könnte es ohne Regex tun mit nur split() mit apropriate Index Wahl gekettet:

var addresses = ["http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk", 
 
"http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk", 
 
"http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk", 
 
"http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk", 
 
"http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk" 
 
]; 
 
var results = addresses.map(x => x.split("?")[1].split("&")[0].split("-")[4]) 
 
console.log(results);

+0

Vielen Dank für Ihre Hilfe. Ich habe eine andere Frage für diesen Code. Wie kann ich diesen Code verwenden, um die URLs mit dem eindeutigen fünften Code zu erfassen? In dem Adress-Array wird der Inhalt so etwas wie "... 111 ..", "... 111 ...", "... 222 ...", "... 222 ..." sein. , ".... 333 ...", "... 333 ...". Am Ende hätte ich gerne URLs mit dem eindeutigen fünften Code, "... 111 ...", "... 222 ...", "... 333 ...". – medev21

+0

sollten Sie als neue Frage posten, da es in einem Kommentarfeld schwer zu beantworten ist. Aber die Lösung wäre filter ((x, i, arr) => arr.lastIndexOf (x) === i) –

Verwandte Themen