HTML Code ersetzen mit regulären Ausdrücken

xwinge

Grünschnabel
Hallo Zusammen,

ich habe da ein Problem das ich einfach nciht gelöst bekomme.
Teilerfolge habe ich schon, aber 100%ig funktioniert es nicht.
Ich hoffe ihr könnt mir helfen.

ich habe mir extra den Teil aus dem kompletten Programm extrahiert , um es getrennt zu entwickeln.
Code:
html = "sfsdfsdfsdfsdf <!--A234--> sdfsf<ajahjak>\n	<!--E234--> sdfsdfsdfsdf"id="234"
expression=eval('/<!--A' + id + '-->(.+?)<!--E' + id + '-->/gim');	
var jetzt = html.replace(expression, "mein neuer Text");

<!--Axxx--> hier steht HTML Code <!--Exxx-->
ich möchte den Code zwischen dem Startwert und dem Endwert inkl. den Werten ersetzen. Leider funktioniert mein Script nur wenn keine Zeilenumbruch dawischen ist. Es können aber mehrere dazwischen sein. Am Besten wäre es wenn er einfach alles ignoriert was dawischen steht. Das mit dem Eval() habe ich aus einem anderen Forum. Ich glaube das ist auch nicht so 100%ig.

Vielen Dank im Vorraus

Jürgen
 
Probier mal Folgendes:
Code:
var html = "sfsdfsdfsdfsdf <!--A234--> sdfsf<ajahjak>\n	<!--E234--> sdfsdfsdfsdf";
var id = 234;
var re = new RegExp('<!--A' + id + '-->([\s\S]+?)<!--E' + id + '-->', 'gi');
var jetzt = html.replace(re, "mein neuer Text");
 
Hi,

escape die Backslashes im regulären Ausdruck:
Code:
var re = new RegExp('<!--A' + id + '-->([\\s\\S]+?)<!--E' + id + '-->', 'gi');

Ciao
Quaese
 

Neue Beiträge

Zurück