WinFuture-Forum.de: Javascript Problem - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Javascript Problem RegExp funktioniert nicht!


#1 Mitglied ist offline   Skaroth 

  • Gruppe: aktive Mitglieder
  • Beiträge: 554
  • Beigetreten: 08. September 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Wien

geschrieben 03. Dezember 2005 - 12:35

Hi,

ich bins mal wieder mit einem ziemlich blöden Problem. RegExp funktioniert einfach nicht. Ich will einen beliebigen Text in einem mehrzeiligen Text suchen, allerdings gibt er immer -1 zurück, was beduetet, dass er den Ausdruck nicht finden kann. Aber das gibt es nicht, weil der Suchbegriff in dem zu suchenden Text existiert.

Hier mal der Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
	<title>Niko's JavaScript Page - Positionsausgabe</title>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
	<script type="text/javascript">
	  function suchen() {
		var suchtext=document.ular.text.value;
		suchmuster="/"+document.ular.suchmuster.value+"/";  
		var ausdruck=new RegExp(suchmuster);
		suchtext.search(ausdruck);
		var ergebnis=suchtext.search(ausdruck);
		alert(ergebnis);
	  }
	</script>
  </head>
  <body>
	<form name="ular">
	  <textarea name="text">Ein Betriebssystem umfasst die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten des Rechensystems bilden und die insbesondere die Abwicklung von Programmen steuern und überwachen.</textarea>
	  <input type="text" name="suchmuster">
	  <input type="button" value="Suchen" onClick="suchen()">
	</form>
  </body>
</html>


Wäre um Hilfe sehr dankbar ;)

Dieser Beitrag wurde von sYnTaX bearbeitet: 03. Dezember 2005 - 12:36

0

Anzeige



#2 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 04. Dezember 2005 - 02:29

Weil du zweimaligig suchst?
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#3 Mitglied ist offline   Skaroth 

  • Gruppe: aktive Mitglieder
  • Beiträge: 554
  • Beigetreten: 08. September 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Wien

geschrieben 04. Dezember 2005 - 11:15

Hi Rika,

danke erstmal für die Antwort. Ich hab mein Script gestern noch umgeschrieben. Das Problem ist nur, wie verwende ich ein Suchmuster, das der Benutzer mittels Textfeld eingeben kann?

wenn ich schreibe /variablenname/, dann sucht er nicht den String der sich hinter variablenname verbirgt, sondern nach variablenname. ;)
0

#4 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 04. Dezember 2005 - 14:18

Zitat

Das Problem ist nur, wie verwende ich ein Suchmuster, das der Benutzer mittels Textfeld eingeben kann?

Genau so, wie du es machst. Aber schau dir den Code noch einmal an: Du rufst die Funktion search() zweimal auf und verwirfst das Resultat des ersten Aufrufs - ist der Text nicht mindestens zweimal vorhanden, liefert der zweite Aufruf natürlich zurück, daß der Text nicht noch einmal gefunden wurde.

Natürlich kann man, wenn man das RegExp-Objekt nicht mehrfach verwenden möchte, auch gleich darauf verzichten und den Matcher direkt verwenden. result=text.search(/RegExp, nicht in Anführungsstrichen/);

Zitat

wenn ich schreibe /variablenname/, dann sucht er nicht den String der sich hinter variablenname verbirgt, sondern nach variablenname.

Das wäre ja auch bestimmt nicht das, was du beabsichtigst, ansonsten müsste der Benutzer ja die Variablennamen und -inhalte mindestens teilweise kennen. Machbar ist es natürlich trivialerweise mit einem eval(), wobei du dann natürlich auf Meta-Zeichen filtern musst.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0