Problem mit regulärem Ausdruck

kesnw

Erfahrenes Mitglied
Hi, ich möchte die Eingabe von Zahlen, Buchstaben und _ und - zulassen.

Code:
  function check_input()
  {
    var field;
    var expression = /[a-zA-Z0-9_-]*/;
    var check;

    var field = document.login.f_pass.value;
    var check = expression.test(field);
    if (check == false)
    {
      alert("Nein!");
      return false;
    }
    alert("Ja!");
    return false;
  }

Als Ergebnis wird immer "Ja!"´geliefert. Warum? wenn ich ein anderes Zeichen als den zulässigen eingebe funktioniert es auch...

Andere Frage:

Was bedeutet das gi bei folgendem Ausdruck: /[^0-9+\-\\\/\s]/gi

Danke für die Antwort!
 
Warum:
du prüfst, ob sich die erlaubten Zeichen drinnen befinden und nicht, ob sich ein verbotenes Zeichen drinnen befindet.

Code:
//varianten
//Prüft, ob die Zeichenkette nur aus den erlaubten Zeichen besteht
var expression = /^[\w-]*$/;
//Prüft, ob kein verbotenes Zeichen drinnen ist(das circumflex negiert eine Zeichenklasse )
var expression = /[^\w-]*/;

....das \w entspricht dabei dem [a-zA-Z0-9_] ...ist nur kürzer;)

Das gi bedeutet:
Code:
[g]-->der Suchausdruck ist gierig....findet soviel Treffer wie möglich(im Gegensatz zu bspw. PHP sind  RegExp's in JS standardmässig "nicht gierig")
[i]-->Gross/Kleinschreibung wird nicht berücksichtigt
 
Ok, danke. So langsam steig ich durch.

Nun noch ein weiterer Ausdruck:

Eine Zeichenkette soll mindestens einen Großbuchstaben, mindestens einen Kleinbuchstaben, mindestens eine Zahl enthalten und mindestens 8 aber höchstens 20 Zeichen lang sein. Ist das so korrekt:
Code:
var expression = /[a-z{1,}A-Z{1,}0-9{1,}_-]{8,20}/;

Wo ist der Fehler?
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück