2016-04-18 6 views
0

anzupassen habe ich das folgende Skript, wo ich ganze HTML und binden sich an ein div (Homepage) analysieren:Wie HTML-Header und Footer

function htmlResponse() { 
    var res = ""; 
    debugger; 
    $.ajaxPrefilter(function (options, originalOptions, jqXHR) { 
     options.async = true; 
    }); 
    $.ajax({ 
     url: "http://localhost:1469/Home.aspx", 
     success: function (result) { 
      res = result; 
      res = res.replace(/\/CMSPages\/GetResource\.ashx/g, 'http://localhost:1469/CMSPages/GetResource.ashx'); 
      res = res.replace(/\/WebResource\.axd/g, 'http://localhost:1469/WebResource.axd'); 
      res = res.replace('<ul>', '<ul class="fallback browse-experience-drop-down-width">'); 

      $("#homePage").html(res); 
     } 
    }).done(function() { 

    }); 
}; 

res Variable enthält vollständige HTML, die bindet sein muss Homepage div .

Wie ich eine andere Regex schreiben kann, die nur <HEADER> bis </HEADER> und <FOOTER> bis </FOOTER> holen wird?

Und diese beiden Abschnitte in zwei Div-Tags binden?

So etwas wie unten:

header = res.regex("REGEX FOR FETCHING HEADER"); 
footer = res.regex("REGEX FOR FETCHING FOOTER"); 

       $("#HEADER").html(header); 
       $("#FOOTER").html(footer); 
+3

[Sie analysieren nicht HTML mit regex!] (Http: // Stackoverflow. com/a/1732454/418066) – Biffen

+0

ich weiß, aber wir haben eine Situation hier, weil wir versuchen, eine CMS-Website auf eine externe Website zu integrieren, die CMS die Integration mit externen Websites nicht unterstützt, müssen daher die Quelle analysieren und ändern und laden – SmartestVEGA

+1

@SmartestVEGA - So * parsen * es. Sie verwenden bereits jQuery, die das für Sie tun wird. – Quentin

Antwort

1

Sie können dies versuchen.

Für den Kopf:

/<(?:HEADER|header)>([\s\S]*?)<\/(?:HEADER|header)>/g 

Regex Demo

Für Fußzeile:

/<(?:footer|FOOTER)>([\s\S]*?)<\/(?:footer|FOOTER)>/g 

Regex Demo

1
/<HEADER>(\n.*)*<\/HEADER>/g 

sollte es tun.