2016-06-01 7 views
-1

Gibt es eine Möglichkeit, jeden Wert innerhalb der Klammern < > zu Array mit JavaScript zu drücken?Get String innerhalb gegeben zwei Zeichen mit JavaScript

Als Beispiel:

<And><Or><And><Eq><FieldRef Name="Editor" /><Value Type="User">XXX</Value></Eq><Eq><FieldRef Name="Document_x0020_Type" /><Value Type="Text">Audit</Value></Eq></And><Eq><FieldRef Name="Base_x0020_Content" /><Value Type="Text">Document</Value> 

ausgegeben werden soll:

Array = ["And", "or", "And", "Eq", "FieldRef Name="Editor" /",.........] 
+2

* "Gibt es einen Weg zu ..." * - Ja, gibt es. Was hast du probiert? – Tomalak

Antwort

0

Natürlich gibt es, verwenden regex /<([^>]+)>/g und erhalten Gruppenwert erfasst. Verwenden Sie RegExp.prototype.exec() Methode, um den erfassten Wert mit Regex zu erhalten.

var str = '<And><Or><And><Eq><FieldRef Name="Editor" /><Value Type="User">XXX</Value></Eq><Eq><FieldRef Name="Document_x0020_Type" /><Value Type="Text">Audit</Value></Eq></And><Eq><FieldRef Name="Base_x0020_Content" /><Value Type="Text">Document</Value>'; 
 

 
var res = [], 
 
    m, 
 
    reg = /<([^>]+)>/g; 
 

 
while (m = reg.exec(str)) 
 
    res.push(m[1]) 
 

 
console.log(res);


Regex explanation here.

Regular expression visualization

0

Sicher ... lets do

var str = '<And><Or><And><Eq><FieldRef Name="Editor" /><Value Type="User">XXX</Value></Eq><Eq><FieldRef Name="Document_x0020_Type" /><Value Type="Text">Audit</Value></Eq></And><Eq><FieldRef Name="Base_x0020_Content" /><Value Type="Text">Document</Value>', 
 
    reg = /[^><]+/g, 
 
    arr = str.match(reg); 
 
console.log(arr);

Verwandte Themen