jspit
Lounge-Member
Hi,
hab eine Stringfunktion geschrieben, die einen Substring liefert der hinter 'after' und
vor 'before' eingebettet ist (substring-after-before). Die Funktionalität von
"substring-before" und "substring-after" ist mit enthalten.
Getestet FF 3.5, IE, Opera 9.62
Das Problem mit Regulären Ausdrücken zu lösen ist mir nicht gelungen.
Hier der Code:
Bin dankbar für Feedback.
hab eine Stringfunktion geschrieben, die einen Substring liefert der hinter 'after' und
vor 'before' eingebettet ist (substring-after-before). Die Funktionalität von
"substring-before" und "substring-after" ist mit enthalten.
Getestet FF 3.5, IE, Opera 9.62
Das Problem mit Regulären Ausdrücken zu lösen ist mir nicht gelungen.
Hier der Code:
PHP:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Test String.prototype.afterbefore</title>
<script type="text/javascript">
<!--
//Liefert Teilstring der hinter after beginnt und vor before endet
//Liefert '' wenn after nicht gefunden wird oder hinter after der String before nicht gefunden wird
//Liefert mit after='' den Teilstring bis vor before (substring-before)
//Liefert mit before='' oder ohne before den String hinter after bis zum Ende (substring-after)
String.prototype.afterbefore = function (after, before){
var s = this;
var pfs = s.indexOf(after);
if ( pfs < 0) return '';
var lfs = after.length;
var pts = s.length;
if(before) {
pts = s.indexOf(before, pfs+lfs);
if( pts < 0) return '';
}
return s.substring(pfs + lfs, pts);
}
//folgende Zeilen dienen zur Demonstration der function string.afterbefore
var bodytext = "";
var p = unescape(location.search);
if (p =="") {
p = "?rp=15&r4=89&p=123";
bodytext = "Keine Zeichenkette hinter ? in URI, zur Demo '" + p + "'<br>"
}
p = p.afterbefore("?"); //alles in der Aufrufzeile hinter ?
p = "&" + p + "&";
bodytext += "Der erste Parameter ist:'" + p.afterbefore("&","&") + "'";
bodytext += "<br>Der zweite Parameter ist:'" + p.afterbefore("&").afterbefore("&","&") + "'";
bodytext += "<br>Der Parameter 'p' hat den Wert:'" + p.afterbefore("&p=","&") + "'";
//-->
</script>
</head>
<body>
<h1>Test String.prototype.afterbefore</h1>
<script type="text/javascript">
<!--
document.write(bodytext);
//-->
</script>
</body>
</html>
Bin dankbar für Feedback.