2012-05-31 6 views
10

Es scheint wie ein einfaches Problem, aber ich kann keine Lösung finden. Ich möchte zuerst zwei Buchstaben aus einer Zeichenfolge nehmen und sie an das Ende dieser Zeichenfolge verschieben. So würde zum Beispiel OK12 12OK werden.Verschieben Sie n Zeichen von der Vorderseite der Zeichenfolge bis zum Ende

edit: Bis jetzt habe ich versucht, string off, dann fügen Sie es zum Rest der Zeichenfolge, aber ich habe gelernt, es gibt eine One-Line-Lösung dafür, wie vordefinierte Funktion oder etwas.

+0

@JosephtheDreamer. Wenn ein Typ sagt, dass er es versucht hat, glaube ich ihm. Was bringt es, viele Fehlerversuche einzubeziehen? Wahrscheinlich kannte er nicht alle String-Funktionen. – gdoron

+0

@marue. Mit welchen Keywords? kannst du mir zeigen wie? – gdoron

+0

Ich habe zuerst Slice verwendet, aber völlig ignoriert diese Tatsache, dass ich es in einer Zeile tun konnte, nicht so gut in Thema tho, tut mir leid. – Malyo

Antwort

13
"OK12".substr(2) + "OK12".substr(0,2) 

generische Lösung:

var result = str.substr(num) + str.substr(0, num); 

Live DEMO

+0

Funktioniert wie ein Zauber, danke. – Malyo

+0

+1 für generische. Allerdings scheint die Regex-Methode besser zu sein, aber langsamer ... aber ordentlicher! :) – VisioN

+0

@ VisioN. Glaubst du wirklich, Regex ist der beste Weg hier? Würdest du dasselbe für den vierten Char sagen? '/. {3} (.) /' Anstelle von 'str [3]'? Regex ist nicht immer die beste Lösung und oft nicht. – gdoron

6

Verschiedene Techniken:

str.slice(2) + str.slice(0,2); 

str = str.replace(/^(.{2})(.+)/, '$2$1'); 

for (var a=str.split(""),i=2;i--;) a.push(a.shift()); 
str = a.join(''); 
+0

Ich mochte den 'Regex' Weg, aber diese Techniken sind hier zuviel. Übrigens, warum hast du '. +' Und nicht '. *' Benutzt? – gdoron

+0

@gdoron Klar! :) Aber sie sind zum Spaß enthalten. – Phrogz

+0

@gdoron Kein guter Grund für '. +' Vs. '. *'; Ich nehme an, dass ich davon ausgehe, dass, wenn Sie daran interessiert sind, Buchstaben zu bewegen, Sie ein Ergebnis ohne Identität erwarten;) – Phrogz

1
text.slice(2) + text.slice(0, 2); 
1
var a='ok12'; 
a=a.substr(2,a.length-2)+a.substr(0,2); 
Verwandte Themen