2010-07-28 15 views
6

के बीच टेक्स्ट कैसे प्राप्त करें मुझे घुंघराले ब्रैकेट के बीच टेक्स्ट (यदि कोई है) प्राप्त करने की आवश्यकता है। मुझे यह अन्य पोस्ट मिला लेकिन तकनीकी रूप से इसका सही उत्तर नहीं दिया गया: Regular expression to extract text between either square or curly bracketsजावास्क्रिप्ट रेगेक्स - घुंघराले ब्रैकेट्स

यह वास्तव में वास्तव में पाठ को निकालने का तरीका नहीं था। तो मुझे यह अब तक मिल गया है:

var cleanStr = "Some random {stuff} here"; 
var checkSep = "\{.*?\}"; 
if (cleanStr.search(checkSep)==-1) { //if match failed 
    alert("nothing found between brackets"); 
} else { 
    alert("something found between brackets"); 
} 

फिर मैं स्ट्रिंग से 'सामान' कैसे निकालूं? और यह भी अगर मैं इस आगे जा सकते हैं कि कैसे मैं इस स्ट्रिंग से 'सामान' और 'सजा' निकालने कार्य करें:

var cleanStr2 = "Some random {stuff} in this {sentence}"; 

चीयर्स!

उत्तर

18

घुंघराले ब्रेसिज़ के बीच सभी घटनाओं को निकालने के लिए, आपको कुछ इस तरह बना सकते हैं:

function getWordsBetweenCurlies(str) { 
    var results = [], re = /{([^}]+)}/g, text; 

    while(text = re.exec(str)) { 
    results.push(text[1]); 
    } 
    return results; 
} 

getWordsBetweenCurlies("Some random {stuff} in this {sentence}"); 
// returns ["stuff", "sentence"] 
+0

बहुत धन्यवाद सीएमएस। यही वह है जिसकी तलाश में मैं हूं! – WastedSpace

+0

@WastedSpace: आपका स्वागत है! ध्यान दें कि मैंने 'टेक्स्ट' की वैरिएबल घोषणा को जोड़ा है जो गायब था। – CMS

+0

हाय सीएमएस, दर्द होने के लिए खेद है (मैंने सोचा कि मैं इसे अपने लिए समझ सकता हूं), लेकिन फिर आप उस वाक्य से सरणी मानों में इस सब कुछ को पार्स करने के बारे में कैसे जाते हैं (इस क्रम में): कुछ यादृच्छिक, {सामान} , इसमें, {वाक्य}। धन्यवाद :) – WastedSpace

0

एक "कब्जा समूह" पाठ आप चाहते हैं इंगित करने के लिए बनाएँ। पूरे स्ट्रिंग को कैप्चर समूह के पीछे संदर्भ के साथ बदलने के लिए String.replace() फ़ंक्शन का उपयोग करें। आप जिस पाठ को चाहते हैं उसके साथ छोड़ दिया गया है।

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