2011-10-10 12 views
7

का उपयोग कर कैसे खोजने के लिए और का उपयोग कर जावास्क्रिप्ट/jQuery एक एचटीएमएल स्ट्रिंग में टैग और अंत टैग शुरू बदलने के लिए एक एचटीएमएल स्ट्रिंग में टैग और अंत टैग शुरू बदलने के लिए कैसेखोजने के लिए और जावास्क्रिप्ट/jQuery

उदाहरण के लिए

var myString = "<span> Hello john</span><div> John likes to play guitar </div> <div style="color:Blue;font-weight:bold" class='quotes'>Anna likes to arrange flowers 
     </div>"; 

मैं के बाद "पी" टैग करने के लिए "div" टैग को बदलने "div" टैग खोजने के लिए और की तरह "पी" टैग/"काल" टैग

परिणामस्वरूप एचटीएमएल स्ट्रिंग अन्य HTML टैग के साथ प्रतिस्थापित करने की आवश्यकता

var replacestring="<span> Hello john</span><p> John likes to play guitar </p> <p style="color:Blue;font-weight:bold" class='quotes'>Anna likes to arrange flowers 
      </p>"; 

कृपया कोई समाधान सुझाएं।

उत्तर

2

जावास्क्रिप्ट:

myString = myString.replace(/<(\/)?div[^>]*>/g, '<$1p>'); 

इसके अलावा मेरे jsfiddle देखते हैं।

=== अद्यतन ===

myString = myString.replace(/<(\/)?div([^>]*)>/g, '<$1p$2>'); 

jsfiddle 2

+2

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Baz1nga

+1

आपका रेगुलर एक्सप्रेशन विधि अच्छा है, लेकिन अगर हम इस का उपयोग करें, टैग के गुण खो गए हैं। इसका उपयोग करते समय हमें सभी विशेषताओं और शैली को रखने की जरूरत है। तो इसे एक संशोधन की आवश्यकता है – Prasanth

+0

यदि मैं div टैग को किसी विशेष वर्गनाम से प्रतिस्थापित करने की आवश्यकता है तो मैं दूसरी पहेली को कैसे संशोधित करूं? – Sandeep

4
myString = $('<div />').html(myString).find('div').replaceWith(function() { 
    var p = $('<p />'); 
    p.html($(this).html()); 
    $.each(this.attributes, function(index, attr) { 
     p.attr(attr.name, attr.value); 
    }); 
    return p; 
}).end().html(); 

jsFiddle। नियमित अभिव्यक्ति के साथ

0

jQuery के साथ कुछ करने का प्रयास कर रहा है, हालांकि, मुझे यकीन नहीं है कि यह एलेक्स के सुझाव से बेहतर है या नहीं।

var $replaceString=$(replaceString); 

$("div",$replaceString).each(
    function() 
    { 
     var $p=$(document.createElement('p')).html($(this).html()); 
     //add code to add any attribute that you want to be copied over. 
     $(this).after($p); 
     $(this).remove(); 
    } 
); 
संबंधित मुद्दे