जावास्क्रिप्ट में एक स्ट्रिंग में पानी का छींटा के बाद सब कुछ प्राप्त करें


150

ऐसा करने का सबसे साफ तरीका क्या होगा जो IE और फ़ायरफ़ॉक्स दोनों में काम करेगा।

मेरा स्ट्रिंग इस तरह दिखता है: कुछ -२०२०२२

अब 'कुछ' और डैश के बाद पूर्णांक अलग-अलग लंबाई के हो सकते हैं।

क्या मुझे बस सबस्ट्रिंग और इंडेक्स का उपयोग करना चाहिए या अन्य तरीके हैं?

जवाबों:


280

मैं यह कैसे करूंगा:

// function you can use:
function getSecondPart(str) {
    return str.split('-')[1];
}
// use the function:
alert(getSecondPart("sometext-20202"));

62
यह उल्लेख के लायक नहीं है कि अगर स्ट्रिंग है तो यह फ़ंक्शन काम नहीं करेगा sometext-20202-303?
इस्तियाक अहमद

17
@IstiaqueAhmed यह होगा यदि प्रश्न विशेष रूप से एक बहुत ही विशिष्ट प्रारूप के बारे में नहीं था: "मेरा स्ट्रिंग इस तरह दिखता है: कहीं-कहीं 20202"
आर्टलॉन्ग

7
सवाल यह था कि get everything after the dash in a string in javascriptइस मामले में, विफल हो जाएगा।
अर्टेम कलिनचुक

108

एक समाधान जो मुझे पसंद है वह होगा:

const str = 'sometext-20202';
const slug = str.split('-').pop();

slugआपका परिणाम कहां होगा


1
यदि आप कई सीमांकक के साथ काम कर रहे हैं तो यह समाधान सबसे अच्छा है।
एथन केली

26
var the_string = "sometext-20202";
var parts = the_string.split('-', 2);

// After calling split(), 'parts' is an array with two elements:
// parts[0] is 'sometext'
// parts[1] is '20202'

var the_text = parts[0];
var the_num  = parts[1];


6

AFAIK, दोनों substring()और indexOf()दोनों मोज़िला और IE द्वारा समर्थित हैं। हालाँकि, ध्यान दें कि कुछ ब्राउज़र (esp। नेटस्केप / ओपेरा) के पुराने संस्करणों पर उस रूट () का समर्थन नहीं किया जा सकता है।

आपकी पोस्ट इंगित करती है कि आप पहले से ही जानते हैं कि इसका उपयोग कैसे करना है substring()और indexOf(), इसलिए मैं एक कोड नमूना पोस्ट नहीं कर रहा हूं।


यह वास्तव में आपके आवेदन के आधार पर, विभाजन से बेहतर समाधान है, क्योंकि यदि आपके पास एक से अधिक हैं - तो आप अवांछित परिणाम प्राप्त कर सकते हैं।
trevorgrayson

20
string.substring (string.indexOf ('-') + 1)
trevorgrayson

इंडेक्सऑफ IE8 और नीचे में मौजूद नहीं है, हालांकि पॉलीफिल मौजूद हैं।
एरिक होन

3

आप इसे बिल्ट-इन RegExp (पैटर्न [, झंडे]) के साथ इस तरह से js में फैक्ट्री नोटेशन कर सकते हैं:

RegExp(/-(.*)/).exec("sometext-20202")[1]

उपरोक्त कोड निष्पादन फ़ंक्शन में दो तत्वों के साथ एक सरणी वापस आ जाएगी (["-20-20", "20202"]) एक हाइफ़न के साथ (-20202) और एक हाइफ़न (20202) के बिना, आपको दूसरा तत्व (सूचकांक 1) चुनना चाहिए



0

फ़ॉर्म की एक नियमित अभिव्यक्ति का उपयोग करें: \ w- \ d + जहां a \ w एक शब्द का प्रतिनिधित्व करता है और \ d एक अंक का प्रतिनिधित्व करता है। वे बॉक्स से बाहर काम नहीं करेंगे, इसलिए चारों ओर खेलते हैं। यह कोशिश करो ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.