Kathrin: Sonderzeichen in einem String suchen

Hallo!
also, ich habe ein eingabefeld mit dem namen pass. dieses eingabefeld muss ich nach sonderzeichen durchsuchen. wenn eines gefunden wird, wird ein boolean auf true gesetzt. kann mir vielleicht jemand sagen wie ich das am besten mache mit den sonderzeichen? das sind ja so viele! kann die ja schlecht alle in einen array schreiben.. hat schon mal jemand etwas ähnliches gemacht?
danke!
kathrin

  1. Hi,

    kann mir vielleicht jemand sagen wie ich das am besten mache mit den sonderzeichen? das sind ja so viele!

    think negative. Es gibt weniger Zeichen, die _nicht_ Sonderzeichen sind.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. ja das habe ich auch gemacht aber meine funktion funktioniert nicht

      //Array fuer die nicht Sonderzeichen
       var andereZeichen = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",0,1,2,3,4,5,6,7,8,9);

      for(var x = 0; x < andereZeichen.length ; x++) {
        var ergebnis = pass.search(andereZeichen[x]);
        if(ergebnis == -1) {
          erfuelltCharacterBoolean = true;
          break;
        }
        else {
          erfuelltCharacterBoolean = false;
        }
      }

      1. Hallo Katrin!
        Versuchs doch mal so:
        var andereZeichen2= escape(andereZeichen);
        if (andereZeichen2!=andereZeichen)
          alert("Sonderzeichen gefunden);

        (escape maskiert dir alle Sonderzeichen als %(hex)ASCII Code
        Falls also ein Sonderzeichen im String ist, ist er anschliessend nicht mehr wir vor escape...

        VFiel Spass,
        Richard

        1. Hi,

          Versuchs doch mal so:

          hui! Netter Trick, gefällt mir. Er schränkt allerdings die Definition von "Sonderzeichen" gewaltig ein. Wenn das nicht stört, ist der Code aber schön knackig.

          Cheatah

          --
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
        2. Hallo Katrin!
          Versuchs doch mal so:
          var andereZeichen2= escape(andereZeichen);
          if (andereZeichen2!=andereZeichen)
            alert("Sonderzeichen gefunden);

          (escape maskiert dir alle Sonderzeichen als %(hex)ASCII Code
          Falls also ein Sonderzeichen im String ist, ist er anschliessend nicht mehr wir vor escape...

          VFiel Spass,
          Richard

          und wo soll ich das genau einfügen? sorry, habe so ziemlich keine ahnung von java script... :-(

          1. Hallo Katrin!

            Ich gehe davon aus, dass dein Eingabefeld Inhalt in dem String pass vorliegt.

            function hasSonderzeichen(pass)
            {
             var result=true;
             var checkTest= escape(andereZeichen);
             if (andereZeichen2==andereZeichen)
                 result=false;
             return result;
            }

            Gibt true zurück, wenn ein Sonderzeichen in pass enthalten, false falls nicht.

            Eigentlich solltest du ja selbst programmieren, aber auch durch lesen wird man besser ;)

            Richard

            1. Edit:

              function hasSonderzeichen(pass)
               {
                var result=true;
                var checkTest= escape(pass);
                if (checkTest==pass)
                    result=false;
                return result;
               }

              Sorry, einige falsche var namen, kommt vom Kopieren!

              By,
              Richard

              1. Hi,

                function hasSonderzeichen(pass)
                {
                  var result=true;
                  var checkTest= escape(pass);
                  if (checkTest==pass)
                      result=false;
                  return result;
                }

                function hatSonderzeichen(der_name_hier_interessiert_nur_die_funktion) {
                  return !der_name_hier_interessiert_nur_die_funktion == escape(der_name_hier_interessiert_nur_die_funktion);
                }

                Cheatah

                --
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
      2. Hi,

        ja das habe ich auch gemacht aber meine funktion funktioniert nicht

        Du siehst nach, ob jedes erlaubte Zeichen in pass vorkommt. Ich tippe mal, das dürfte selten der Fall sein. Kleiner Tipp: Mit einer Regular Expression geht's leichter.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Hi Kathrin,

    hat schon mal jemand etwas ähnliches gemacht?

    auf http://www.1ngo.de/web/formular.html prüfe ich Formulareingaben und kodiere einige ausgewählte Sonderzeichen und ersetze die übrigen Sonderzeichen durch einen Platzhalter. Am günstigsten finde ich hierfür switch - mal ein Auszug:

    for (var y = 0; y < Number(EingabeZeile.length); y++) {
      switch(EingabeZeile.charCodeAt(y)) {
        ...
        case 196: z = z + "&#196;"; break;
        case 214: z = z + "&#214;"; break;
        ...
        default:
          if (EingabeZeile.charCodeAt(y) > 32 && EingabeZeile.charCodeAt(y) < 127) z = z + EingabeZeile.charAt(y);
          else z = z + "&#191;";
        ...

    freundliche Grüße
    Ingo