2016-08-08 12 views
-2

Ich habe eine Zeichenfolge, die etwa wie folgt aussieht:Wie in jeder Zeile mit Javascript teilen?

cover.jpg|http://domain2.com 
insert.jpg|http://domain46.com 
01.jpg|http://domain2g.com 

ich dieses Zeichen geteilt werden soll | in jeder Zeile und erhält die erste gespaltet Zeichenfolge für jede Zeile so dass das Endergebnis sollte wie folgt aussehen:

cover.jpg 
insert.jpg 
01.jpg 

Das ist mein Code ist, und ich kann es nicht für jede Zeile

var s = 'cover.jpg|http://domain2.com\ninsert.jpg|http://domain46.com\n01.jpg|http://domain2g.com'; 
 
var fields = s.split('|'); 
 
alert(fields[0])
an der Arbeit

+0

's.split (/ [\ n |] /) .filter ((function (x, n) {return! (n% 2);})). join ('\ n'); 'sollte es tun –

+0

einfach durch neue Zeile teilen, dann für jede Zeile durch' | ' . 'var Felder = s.split ('\ n'); fields.forEach (Funktion (Feld) {alert (field.split ('|') [0]);}) ' – Braj

+0

@JaromandaX Hallo, kannst du erklären, was' x' und 'n' sind? –

Antwort

0

Sie müssen auch durch neue Zeile teilen.

var s = 'cover.jpg|http://domain2.com\ninsert.jpg|http://domain46.com\n01.jpg|http://domain2g.com'; 
 

 
s.split('\n').forEach(function(line){ 
 
    var fields = line.split('|'); 
 
    console.log(fields[0]) 
 
})

+0

Es gibt eine Zeile nicht mehrere Zeilen –

+0

@ GM.Akbar gibt es mehrere Zeilen, wenn Sie genau hinsehen. :) –

+0

Oh! Entschuldigung, ich sah, dass –

1

Vorausgesetzt, dass Sie die Map-Funktion zur Verfügung haben, können Sie dies durch die Spaltung auf der neuen Linie Charakter erreichen, dann jede Zeile auf dem Pipe-Zeichen Aufspalten und das erste Element immer in der resultierendes Array.

var s = 'cover.jpg|http://domain2.com\ninsert.jpg|http://domain46.com\n01.jpg|http://domain2g.com'; 
 
var fields = s.split('\n').map(function(line){ return line.split('|')[0];}); 
 
console.log(fields);

http://caniuse.com/#search=map

0

Erste Split jede Zeile durch die regext /\n/g verwendet, die eine globale Spaltung für die \n (neue Zeile) Vorkommen tun.

Nächste Schleife jedes Auftreten der Felder (Zeilen) und extrahieren Sie die Dateinamen durch Ausführen der Regex /\|/. Dieser Regex wird durch das Zeichen | geteilt (erfasst jedoch nur die erste Instanz).

var s = 'cover.jpg|http://domain2.com\ninsert.jpg|http://domain46.com\n01.jpg|http://domain2g.com'; 
 
    var fields = s.split(/\n/g); 
 
    var fileNames = []; 
 
    for(var i = 0;i<fields.length;i++){ 
 
\t fileNames.push(fields[i].split(/\|/g)[0]); 
 
    } 
 
    alert(fileNames);

+0

Ich möchte Kommas im Endergebnis nicht. Wie zeige ich sie jeweils in einer neuen Zeile an? – TravelWhere

0

Dies könnte helfen:

var array1 = s.split('\n'); 

var array2 = array1[0].split('|'); 
var array3 = array1[1].split('|'); 
var array4 = array1[2].split('|'); 

alert(array2[0]+"\n"+array3[0]+"\n"+array4[0]); 

Erste Split basierend auf '\n' und dann Split basierend auf '|'

Verwandte Themen