Hallo, ich bin gerade dabei für ein Spiel einen Nachrichtenformatierer zu schreiben, ich habe es auch fast geschafft, so sieht derzeit mein code aus:
<html><head><title>Telegrammformatierer</title>
[code lang=javascript]<script type="text/javascript">
function Titel()
{
var feld = document.getElementById('eingabe').value, oben = /Betreff\s+(.*)\s+Gesprächspartner\s+(\w+)/, titel = oben.exec(feld);
var zwischen = "[b]Betreff:[/b] " + titel[1] + "\n" + "[b]Gesprächspartner:[/b] [player]" + titel[2] + "[/player]";
var unten = /.*\n(.*\s+(?:am\s\d\d\.\d\d\.\d\d|heute)\sum\s\d\d:\d\d\sUhr(?:.|\s)+)\s(?:.|\s)+\n/gi, nachricht = unten.exec(feld);
var fertig = zwischen + nachricht[1];
document.getElementById('ausgabe').value = fertig;
document.getElementById('test').value = nachricht;
}
function leer()
{
if (document.getElementById('name').value == "Trage hier deinen Ingame Nicknamen ein.") {
document.getElementById('name').value = ""
}
}
function füll()
{
if (document.getElementById('name').value == "") {
document.getElementById('name').value = "Trage hier deinen Ingame Nicknamen ein."
}
}
</script>
</head><body>
<form action="">
<textarea name="name" id="name" cols="50" onclick="leer()" onblur="füll()" rows="1">Trage hier deinen Ingame Nicknamen ein.</textarea><br>
<textarea name="eingabe" id="eingabe" cols="50" rows="10"></textarea><br>
<input type="button" value="Ausgabe" onclick="Titel()"><br>
<textarea name="ausgabe" id="ausgabe" cols="50" rows="10"></textarea><br>
<textarea name="test" id="test" cols="50" rows="10"></textarea><br>
</form>
</body></html>[/code]
und das klappt bisher auch ganz gut, d.h. er liest den gesprächspartner und den Betreff aus. Auch erkennt er an einem datum und einer Uhrzeit wann eine neue antwort beginnt (.*\s+(?:am\s\d\d\.\d\d\.\d\d|heute)\sum\s\d\d:\d\d\sUhr(?:.|\s)+)
Mein Problem ist jetzt, dass er bisher noch alles was nach dem namen, dem datum und der uhrzeit kommt im array unter einem namen speichert. Wenn ich es jetzt begrenzen will (also nur bis dahin wo dann die nächste antwort beginnt), und zwar indem ich danach einfach nochmal angebe, dass ein wort (der name) und ein datum und eine Uhrzeit kommen soll.
Jetzt kommt mein Problem, wenn ich dann auf den button zum berechnen klicke, tut es nicht nur nicht, sondern es hängt sich der ganze browser auf, und reagiert nichtmehr. Eigentlich ist der ganze code richtig.
Das ist der Text, den er durchsuchen soll:
Betreff Das ist der Betreff
Gesprächspartner YYYYY
»1« [2] [3]
Tonda am 15.01.09 um 15:24 Uhr
das ist die zweite antwort
YYYYY am 15.01.09 um 15:16 Uhr
das ist die erste antwort
auch wenn ich jetzt nach dem match zum begrenzen des zu speichernden arrays einfach angebe, bis das nächste mal "YYYYY" kommt, hängt er sich auf.
Ich hoffe ihr versteht mein Problem und könnt mir helfen
MfG Tonda