2017-01-13 26 views
-4

Angenommen, wir die folgende Zeichenfolge haben:Extract Rotationswerte von String

var foo = "rotateX(10deg) rotateY(20deg) rotateZ(30deg) scale(1,3) skewX(90deg,0deg)" 

Wie können wir nur die rotate Werte extrahieren (hier sind 10,20,30)?

+2

welche Anstrengung haben Sie unternommen? –

Antwort

0

"Immer in die Frage einbeziehen, was Sie versucht haben."

Ergebnis wird ein Array von Strings sein. Sie können in Zahlen konvertieren, wenn Sie möchten.

Wenn rotateX, rotateY und rotateZ um angezeigt werden, können Sie dies versuchen,

var arr=[]; 
foo.split(" ").forEach((s)=>{ 
    if(s.indexOf("rotate")>=0){ 
     arr.push(s.match(/\d/g).join('')); 
    } 
}); 

Wenn Auftrag von rotateX, rotateY und rotateZ zufällig ist. Dann können Sie dies versuchen,

var arr=[null, null, null]; 
foo.split(" ").forEach((s)=>{ 
    if(s.indexOf("rotateX")>=0){ 
     arr[0] = s.match(/\d/g).join(''); 
    } else if(s.indexOf("rotateY")>=0){ 
     arr[1] = s.match(/\d/g).join(''); 
    } else if(s.indexOf("rotateZ")>=0){ 
     arr[2] = s.match(/\d/g).join(''); 
    } 
}); 
+0

Vermutlich könnten X, Y und Z in jeder Position sein. – canon

+0

@canon du meinst in der Mitte des Wortes "drehen"? – nrgwsth

+0

Vermutlich können 'rotateX',' rotateY' ​​und 'rotateZ' in der Eingabezeichenfolge in beliebiger Reihenfolge angegeben werden. Wenn das der Fall ist, haben Sie keine Ahnung, was jeder Ihrer Rückgabewerte _means_ ist, weil Sie keinen Kontext für sie behalten. – canon