2012-05-31 15 views
10

पर ले जाएं यह एक आसान समस्या है, लेकिन मुझे समाधान नहीं मिल रहा है। मैं पहले लेना चाहता हूं, आइए स्ट्रिंग से 2 अक्षर कहें, और उन्हें इस स्ट्रिंग के अंत में ले जाएं। तो उदाहरण के लिए, OK12 12 ओके बन जाएगा।स्ट्रिंग के सामने से एन अक्षर को

संपादित करें: अब तक मैंने स्ट्रिंग को काटने की कोशिश की है, फिर इसे स्ट्रिंग के बाकी हिस्सों में जोड़ दिया है, लेकिन मैंने सोचा कि इसके लिए एक लाइन समाधान है, जैसे पूर्वनिर्धारित फ़ंक्शन या कुछ।

+0

@ जोसेफथीड्रीमर। जब एक लड़के ने कहा कि उसने कोशिश की, तो मैं उसे विश्वास करता हूं। कई विफलता प्रयासों को शामिल करने के क्या फायदे हैं? वह शायद सभी स्ट्रिंग कार्यों को नहीं जानता था। – gdoron

+0

@marue। किस कीवर्ड के साथ? क्या आप मुझे दिखा सकते हैं? – gdoron

+0

मैंने पहले स्लाइस का उपयोग किया है लेकिन पूरी तरह से इस तथ्य को अनदेखा कर दिया है कि मैं इसे एक पंक्ति में कर सकता था, माफ करना, विषय में अच्छी तरह से सटीक नहीं था। – Malyo

उत्तर

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

जेनेरिक समाधान:

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

Live DEMO

+0

एक आकर्षण की तरह काम करता है, धन्यवाद। जेनेरिक के लिए – Malyo

+0

+1। हालांकि, रेगेक्स विधि अधिक साफ लेकिन धीमी लगती है ... लेकिन अधिक साफ! :) – VisioN

+0

@VisioN। क्या आपको सच में लगता है कि रेगेक्स यहां सबसे अच्छा तरीका है? क्या आप चौथे चार से मेल खाने के लिए भी यही कहेंगे? '/। {3} (।) /' 'Str [3]' के बजाय '? Regex हमेशा सबसे अच्छा समाधान नहीं है, और कई बार यह नहीं है। – gdoron

6

विभिन्न तकनीकों:

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

मुझे 'रेगेक्स' तरीका पसंद आया, लेकिन ये तकनीकें यहां अधिक हैं। वैसे, आपने '। +' का उपयोग क्यों किया और '' * 'नहीं? – gdoron

+0

@gdoron स्पष्ट रूप से! :) लेकिन वे मस्ती के लिए शामिल हैं। – Phrogz

+0

@gdoron '। +' बनाम '। *' के लिए कोई अच्छा कारण नहीं है; मुझे लगता है कि मुझे लगता है कि यदि आप चारों ओर अक्षरों को स्थानांतरित करने में रुचि रखते हैं, तो आप एक गैर-पहचान परिणाम की उम्मीद करते हैं;) – Phrogz

1
var a='ok12'; 
a=a.substr(2,a.length-2)+a.substr(0,2); 
संबंधित मुद्दे