स्ट्रिंग के अंतिम दो वर्णों का चयन कैसे करें


193

मुझे चर से अंतिम दो वर्णों का चयन करने की आवश्यकता है, चाहे वह अंक हो या अक्षर।

उदाहरण के लिए:

var member = "my name is Mate";

मैं memberचर में स्ट्रिंग से अंतिम दो अक्षर दिखाना चाहूंगा ।

जवाबों:



23

यह कोशिश करें, ध्यान दें कि आपको अंत इंडेक्स को निर्दिष्ट करने की आवश्यकता नहीं है substring

var characters = member.substr(member.length -2);

आपका मूल उत्तर शायद अधिक उपयुक्त था। एमडीएन के substrडॉक्स के अनुसार , "माइक्रोसॉफ्ट का जेस्क्रिप्ट स्टार्ट इंडेक्स के लिए नकारात्मक मूल्यों का समर्थन नहीं करता है।"

23

EDIT: 2020: string.slice(-2)जैसा कि अन्य कहते हैं - नीचे देखें।

अब २०१६ बस string.substr(-2)चाल करना चाहिए ( प्रतिस्थापन नहीं !)

एमडीएन से लिया गया

वाक्य - विन्यास

str.substr(start[, length])

पैरामीटर

शुरू

वह स्थान जिस पर पात्रों को निकालना शुरू किया जाए। यदि एक ऋणात्मक संख्या दी गई है, तो इसे स्ट्रैलोमीटर + स्टार्ट के रूप में माना जाता है, जहां स्ट्रैलोमीटर स्ट्रिंग की लंबाई है (उदाहरण के लिए, यदि प्रारंभ -3 है तो इसे स्ट्रीलट्रिक्स के रूप में माना जाता है - 3.) लंबाई वैकल्पिक। वर्णों की संख्या निकालने के लिए।

EDIT 2020

एमडीएन का कहना है

चेतावनी: हालांकि String.prototype.substr (…) को सख्ती से घटाया नहीं जाता है (जैसा कि "वेब मानकों से हटा दिया गया है"), इसे एक विरासत कार्य माना जाता है और जब संभव हो तो इसे टाला जाना चाहिए। यह कोर जावास्क्रिप्ट भाषा का हिस्सा नहीं है और भविष्य में इसे हटाया जा सकता है।


1
"Microsoft का JScript स्टार्ट इंडेक्स के लिए नकारात्मक मानों का समर्थन नहीं करता है। JScript में इस सुविधा का उपयोग करने के लिए, आप निम्न कोड का उपयोग कर सकते हैं ..." - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… (जबकि स्लाइस के लिए उनके पास कोई
पॉलीफ़िल

ध्यान दें कि JScript ब्राउज़र के अंदर नहीं है, यह मुख्य रूप से Windows स्क्रिप्ट होस्ट ऑटोमेशन के साथ काम करने के लिए एक स्क्रिप्टिंग भाषा है (VBScript के समान), इसलिए यह तर्कसंगत है कि उस समय इसमें इस तरह के तरीके शामिल नहीं थे। नए विंडोज़ संस्करण PowerShell को बढ़ावा देते हैं। क्रिप्टिक वाक्यविन्यास। वैसे भी यह टिप्पणी स्लाइस पर थी कि यह JScript के मामले में जड़
George Birbilis

9

निम्न उदाहरण slice()नकारात्मक अनुक्रमित के साथ उपयोग करता है

var str = 'my name is maanu.';
console.log(str.slice(-3));     // returns 'nu.' last two
console.log(str.slice(3, -7)); // returns 'name is'
console.log(str.slice(0, -1));  // returns 'my name is maanu'


5

तुम कोशिश कर सकते हो

member.substr(member.length-2);

आपने अपने शुरुआती इंडेक्स से मेंबर को मिस कर दिया। :)
mattytommo

आह शांत, मैंने अपने उत्तर को प्रतिबिंबित करने के लिए अद्यतन किया है, धन्यवाद TJ और Ibu :)
mattytommo

1
@TJCrowder: IE8 और लोअर के लिए प्रारंभिक स्थिति के रूप में निगेटिव इंडेक्स काम नहीं करता है।

1
@amnotiam: धन्यवाद, पता करने के लिए बहुत अच्छा! मैंने अभी-अभी परीक्षण किया है , और निश्चित रूप से पर्याप्त है, IE7 या IE8 पर काम नहीं किया (और इसलिए संभवतः IE6 पर काम नहीं करेगा)। मानक मोड में IE9 ठीक था (लेकिन हम नहीं)। मैं कभी उपयोग नहीं करता हूं substr, और अब मैं चाहता हूं कि मुझे वह धागा मिल जाए जहां कुछ स्मॉग गिट ने मुझे इसके लिए एक कठिन समय दिया (और विशेष रूप से नकारात्मक अनुक्रमित का उपयोग नहीं करने के लिए) - मैं अब इसे सही ठहरा सकता हूं! :-)
टीजे क्राउडर


2

ऐसा करने के लिए आपको jQuery नहीं, सबस्ट्रिंग का उपयोग करना चाहिए।

कुछ इस तरह की कोशिश करो:

member.substring(member.length - 2, member.length)

W3Schools (आधिकारिक तौर पर नहीं, लेकिन कभी-कभी मददगार): http://www.w3schools.com/jsref/jsref_substring.asp

टिप्पणीकार द्वारा अनुरोध के अनुसार MDN लिंक जोड़ना: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring


3
कृपया MSDN या MDN जैसे आधिकारिक दस्तावेज़ों के लिंक प्रदान करें, w3fools :) नहीं
jbabey

w3schools "आधिकारिक" नहीं है, लेकिन आम तौर पर विश्वसनीय जानकारी है। MSDN आधिकारिक है, लेकिन IE विशिष्ट है और फ़ायरफ़ॉक्स, सफारी, आदि के साथ कुछ भी नहीं करना है
मैट

टिप्पणी के लिए लिंक जोड़ा गया जैसा कि आप इस पोस्ट कर रहे थे
मैट

1
var member = "my name is maanu";

var answer=member.substring(0,member.length - 2);

alert(answer);

1
कोड क्या करता है? कृपया यह क्या हासिल की एक व्याख्या लिखें।
DNKROZ

3
निष्पक्ष होने के लिए, यह प्रश्न बहुत विशिष्ट है कि कोड को क्या करने की आवश्यकता है, इसलिए एक उत्तर (संक्षेप में) कोड की एक पंक्ति में बहुत आत्म-व्याख्यात्मक है।
अनएक्समैंडर

1
कोड आउटपुट 'एनयू' होगा। शब्द से अंतिम 2 सुधारक लें।
बीजू एस

7
मुझे ऐसा लगता है कि कोड आउटपुट "मेरा नाम माँ है" (सब कुछ ~ को छोड़कर ~ अंतिम दो अक्षर) होगा, जो कि प्रश्न के लिए नहीं पूछा गया है, अगर मैंने इसे सही ढंग से समझा।
इविनो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.