oleeeee: nach einer variable suchen

hi,

in http://de.selfhtml.org/javascript/objekte/string.htm wird folgendes beispiel angeben:

<script type="text/javascript">
var Aussage = "Wir wollen weisse Waesche waschen";
var Ergebnis = Aussage.search(/weiss/);
if (Ergebnis != -1)
  alert("gefunden");
</script>

was aber wenn ich das wort "weiss" durch eine Variable ersetzen möchte? also etwa so:

<script type="text/javascript">
var Aussage = "Wir wollen weisse Waesche waschen";
var sucheNach = "weiss";
var Ergebnis = Aussage.search(/ sucheNach /);
if (Ergebnis != -1)
  alert("gefunden");
</script>

das klappt natürlich nicht. aber wie komme ich denn aus der suchmuster-syntax heraus um einen variablennamen abzurufen?

lg

  1. Mahlzeit,

    var Ergebnis = Aussage.search(/weiss/);

    was aber wenn ich das wort "weiss" durch eine Variable ersetzen möchte? also etwa so:

    <script type="text/javascript">
    var Aussage = "Wir wollen weisse Waesche waschen";
    var sucheNach = "weiss";
    var Ergebnis = Aussage.search(/ sucheNach /);

    Dann musst Du explizit ein neues http://de.selfhtml.org/javascript/objekte/regexp.htm@title=RegExp-Objekt definieren:

    var Aussage = new RegExp("Wir wollen weisse Waesche waschen");
    var sucheNach = "weiss";
    var Ergebnis = Aussage.test(sucheNach);

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. gruss EKKi,

      ...

      Dann musst Du explizit ein neues <http://de.selfhtml.org/ javascript/objekte/regexp.htm@title = RegExp - Objekt> definieren:

      richtig.

      var Aussage = new RegExp("Wir wollen weisse Waesche waschen");

      das glaub ich nicht - [Aussage] soll den typ "string" behalten, denn auf diesem wert soll die suche erfolgen.

      var sucheNach = "weiss";

      auch nicht - [sucheNach] soll ja gerade das variabel zu erzeugende suchmuster sein - also ein [RegExp]-objekt.

      var Ergebnis = Aussage.test(sucheNach);

      richtig, da syntaktisch korrekt - [RegExp].test([String|string]) - aber dabei handelt es sich nicht um den fall,
      den Du und der OP eigentlich testen wollten.

      hast Du in Deinem beispiel [Ergebnis] ueberhaupt einer pruefung unterzogen?

      code:

      var Aussage = "Wir wollen weisse Waesche waschen";  
      var sucheNach = "weiss";  
      var regXSucheNach = new RegExp(sucheNach);  
      var Ergebnis = regXSucheNach.test(Aussage);  
      alert(Ergebnis); // true;  
        
      sucheNach = "wir wollen";  
      regXSucheNach = new RegExp(sucheNach);  
      Ergebnis = regXSucheNach.test(Aussage);  
      alert(Ergebnis); // false;  
        
      sucheNach = "waesche waschen";  
      regXSucheNach = new RegExp(sucheNach, "i");  
      Ergebnis = regXSucheNach.test(Aussage);  
      alert(Ergebnis); // true;
      

      so long - peterS. - pseliger@gmx.net

      --
      »Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
      Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
      ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]