2010-10-07 21 views

उत्तर

43
str.charAt(str.length - 1) 

कुछ ब्राउज़र (एक गैर मानक विस्तार के रूप में) की अनुमति देने के आप को यह छोटा करने के लिए:

var lastChar=yourString.charAt(yourString.length-1); 
7

आप इस तरह पिछले चार प्राप्त कर सकते हैं:

charAt() विधि char एक स्ट्रिंग में निर्दिष्ट सूचकांक पर अभिनेता।

आप इस स्ट्रिंग में अंतिम वर्ण प्राप्त करने के लिए length स्ट्रिंग की संपत्ति के साथ इस विधि का उपयोग कर सकते हैं।
उदाहरण के लिए:

var myString = "linto.yahoo.com."; 
var stringLength = myString.length; // this will be 16 
var lastChar = myString.charAt(stringLength - 1); // this will be the string "." 
75

उपयोग charAt:

str[str.length - 1]; 
+12

और सबसे तेजी से http://jsperf.com/splice-1-vs-charat-lenght-1-vs-index – Joaolvcm

3

किसी दिए गए 0-अनुक्रमित स्थिति में एक चरित्र को पाने के लिए जावास्क्रिप्ट charAt समारोह का उपयोग करें। स्ट्रिंग कितनी देर तक पता लगाने के लिए length का उपयोग करें। आप पिछले चरित्र चाहते हैं, ताकि लंबाई है - 1. उदाहरण:

var word = "linto.yahoo.com."; 
var last = word.charAt(word.length - 1); 
alert('The last character is:' + last); 
747

एक सुरुचिपूर्ण और कम विकल्प, String.prototype.slice तरीका है।

बस द्वारा:

str.slice(-1); 

एक नकारात्मक शुरुआत सूचकांक स्लाइस स्ट्रिंग length+index से, length, सूचकांक -1 किया जा रहा है, अंतिम वर्ण निकाला जाता है:

"abc".slice(-1); // "c"; 
+5

साइड नोट देख सकते हैं: सरणियों भी एक [ 'टुकड़ा है() '] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice) विधि। - उनकी कार्यक्षमता अवधारणात्मक रूप से समान (आंशिक प्रतियां) है -------- (अगर आप कोड पढ़ रहे हैं और '.slice() ') –

+0

देखें तो क्या यह यूटीएफ -8 तारों पर भी काम करता है? –

+1

"यूटीएफ -8 स्ट्रिंग" से आपका क्या मतलब है? वाक्यांश का कोई मतलब नहीं है। एफडब्ल्यूआईडब्ल्यू हालांकि, जावास्क्रिप्ट स्ट्रिंग मजाकिया जानवर स्वयं हैं: वे 16-बिट पूर्णांक मानों के अनुक्रमित हैं। यदि आपकी स्ट्रिंग का इरादा वर्णों को संग्रहीत करना है, तो ऊपर दिया गया कोड अंतिम 16-बिट मान देता है, जो कि सरोगेट जोड़ी का दूसरा भाग नहीं होगा, जो सुंदर नहीं होगा। लेकिन फिर, "यूटीएफ -8 स्ट्रिंग" से आपका क्या मतलब है? यूटीएफ -8 एक एन्कोडिंग योजना है जो आपके पास बाइट सरणी होने पर समझ में आ सकती है, लेकिन स्ट्रिंग की बात आने पर इसका कोई मतलब नहीं है। बस उत्सुक। –

32

उपयोग substr पैरामीटर साथ - 1:

"linto.yahoo.com।"। सबस्ट्र (-1);

बराबर "।"

नोट:

स्ट्रिंग के अंत से पात्रों को निकालने के लिए, एक नकारात्मक शुरुआत नंबर का उपयोग (यह पहले आईई 8 में काम नहीं करता और)।

+2

ऐसा लगता है कि यह स्लाइस() के रूप में छोटा है, मुझे आश्चर्य है कि कौन सा बेहतर और तेज़ है। – stramin

4
var firstName = "Ada"; 
var lastLetterOfFirstName = firstName[firstName.length - 1]; 
+0

जबकि यह कोड स्निपेट प्रश्न हल कर सकता है, [एक स्पष्टीकरण सहित] (// meta.stackexchange।कॉम/प्रश्न/114762/समझा-पूरी तरह से कोड-आधारित-उत्तर) वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और वे लोग आपके कोड सुझाव के कारणों को नहीं जानते हैं। स्पष्टीकरण टिप्पणियों के साथ अपने कोड को भीड़ न करने का प्रयास करें, इससे कोड और स्पष्टीकरण दोनों की पठनीयता कम हो जाती है! – kayess

18

आप इस अलग अलग तरीकों लेकिन अलग अलग प्रदर्शन के साथ,

1 का उपयोग कर प्राप्त कर सकते हैं।ब्रैकेट अंकन का उपयोग करना:

var str = "Test"; var lastLetter = str[str.length - 1];

लेकिन यह कोष्ठक का उपयोग नहीं करने की सिफारिश की है। कारणों Here

2. charAt [सूचकांक] की जाँच करें:

var lastLetter = str.charAt(str.length - 1)

यह पठनीय और सबसे तेजी से अन्य लोगों के अलावा है। यह सबसे अनुशंसित तरीका है।

3. सबस्ट्रिंग:

`str.substring(str.length - 1);` 

4. टुकड़ा:-स्ट्रिंग से

str.slice(-1);

इसका थोड़ा तेज।

आप प्रदर्शन Here

संबंधित मुद्दे