wie funktioniert ein variables replace?
Robert Kuhlemann
- javascript
hallo,
mit dem beispiel aus selfhtml
var vormals = "Elke Hinz";
var jetzt = vormals.replace(/Hinz/,"Kunz, geb. Hinz");
kommt man in der praxis nicht sehr weit.
es gibt ja außer Hinz noch andere.
und der link auf regexp (reguläre ausdrücke) entpuppt sich als sehr anspruchsvoll.
weiss jemand auf die schnelle, wie ich statt mit dem konstanten Ausdruck /Hinz/ mit einem variablen Ausdruck arbeiten kann?
mfg robert
Hallo,
ich würde "Hinz" und "Kunz, geb. Hinz" durch Variablen ersetzen.
Gruß Jan
hallo,
mit dem beispiel aus selfhtml
var vormals = "Elke Hinz";
var jetzt = vormals.replace(/Hinz/,"Kunz, geb. Hinz");
kommt man in der praxis nicht sehr weit.
es gibt ja außer Hinz noch andere.
und der link auf regexp (reguläre ausdrücke) entpuppt sich als sehr anspruchsvoll.
weiss jemand auf die schnelle, wie ich statt mit dem konstanten Ausdruck /Hinz/ mit einem variablen Ausdruck arbeiten kann?
mfg robert
Hi,
weiss jemand auf die schnelle, wie ich statt mit dem konstanten Ausdruck /Hinz/ mit einem variablen Ausdruck arbeiten kann?
RegExp sin Objecte, und die kann mam mit new neu erstellen.
Also das Pattern /Hinz/i könnte als new RegExp("Hinz", "i") formuliert
werden. Innerhalb dieser bestimmung sind deutlich sichtbar strings am
werk d.h.
var ausdruck = "Hinz";
var flag = "i";
neuesObject = new RegExp(ausdruck, flag);
bsp:
<html><head><title>Test</title></head><body>
<script type="text/javascript">
<!--
var vormals = "Elke Hinz";
var ausdruck = "Hinz";
var flag = "i";
var matcher = new RegExp(ausdruck, flag);
var jetzt = vormals.replace(matcher,"Kunz, geb. Hinz");
document.write(jetzt);
//-->
</script></body></html>
readings: http://developer.netscape.com/docs/manuals/js/client/jsref/regexp.htm
bye eddie
Hi Robert,
versuche es damit:
var OriginalString;
var NewString;
var ReplaceString;
var SearchString;
var SearchExpression;
OriginalString = "Elke Hinz";
SearchString = "Hinz"
SearchExpression = new RegExp(SearchString);
ReplaceString = "Kunz, geb. Hinz";
NewString = OriginalString.replace(SearchExpression, ReplaceString);
Das entscheidende ist die Zeile
"SearchExpression = new RegExp(SearchString);".
Damit kann man eine Regular Expression definieren.
Hatte dasselbe Problem wie Du, da dies in der Tat nur sehr versteckt dokumentiert ist.
Gruß
Udo
Versuchs mal hiermit:
Bsp: replaceSubstring('Elke Hinz','Hinz','Kunz, geb. Hinz')
Funktioniert in allen Browsern (bis jetzt)...
function replaceSubstring(string,searchString,replaceString)
{
var searchString = searchString.split('~');
var replaceString = replaceString.split('~');
var searchvalues = 0;
var flow = 0;
var serStrings = searchString.length;
var repStrings = replaceString.length;
if (serStrings != repStrings) {
alert('Fehlende Argumente');
return
}
else if (serStrings == repStrings) {
for (i = 0; i < serStrings; i ++) {
if (searchString[i] == replaceString[i]) {
alert('searchString: '+searchString[i]+', entspicht replaceString: '+replaceString[i] + '- Funktion abgebrochen.')
return
}
}
}
while (flow < serStrings)
{
while (searchvalues != -1)
{
string = string.replace(searchString[flow],replaceString[flow]);
searchvalues = string.indexOf(searchString[flow])
}
flow ++;
searchvalues = 0;
}
return string
}
Gruß und viel Spaß ;)
Carsten
Das Teil kann auch mehrere auf einmal ersetzen:
replaceSubstring('mein auto','mein~a~u~o','dein~ä~ü~ö') -> dein äütö
ist ganz witzig, wenn man sonderzeichen rausschmeissen muss...
danke allen,
es funktioniert jetzt bestens!
mfg robert