Seite 3 von 4
Numerisches Feld Begrenzungslinien
Verfasst: 25.08.2010, 13:19
von john61
Hallo Mandy,
wie geschrieben, \W bzw. ^\w steht für all diese Zeichen mit Ausnahme des Unterstriches.
Und klappt es bei Dir?
Gruß
john61
Numerisches Feld Begrenzungslinien
Verfasst: 25.08.2010, 13:45
von john61
Verflixt. Ich habe vergessen, die Klammern zu zählen.
Richtig ist so
if(xfa.event.newText.match(/[^w-]/))
{
xfa.event.change = "";
}
bzw. so
if((xfa.event.newText.match(/[^w-]/)) || (xfa.event.newText.match(/[\_]/)))
{
xfa.event.change = "";
}
john61
Numerisches Feld Begrenzungslinien
Verfasst: 25.08.2010, 13:50
von nele_sonntag
Noch nicht ganz so optimal.
Möchte ich nur Zahlen von 0 bis 3 und Großbuchstaben DE und einen Punkt erlauben, funktioniert die Prüfung mit den Zahlen und Buchstaben nicht mehr, außer ich mache es so \.\
Code: Alles auswählen
if(xfa.event.newText.match(/[^0-3DEw.]/)){
xfa.event.change = "";
}
//ohne Punkt gehts
if(xfa.event.newText.match(/[^0-3DE]/)){
xfa.event.change = "";
}
Muss ich hier dann immer mit dem ODER Operator arbeiten oder habe ich den Syntax falsch geschrieben?
Wo genau ist der Unterschied zwischn /W und /^w, nur der Unterstrich?
In selfhtml/javascript habe ich folgendes gefunden, werd aber nicht ganz schlau draus
- w /
- w+/
- findet alle alphanumerischen Zeichen und den Unterstrich (typische Bedingung etwa für programmiersprachengerechte selbstvergebene Namen).
- W /
- W/
- findet ein Zeichen, das nicht alphanumerisch und auch kein Unterstrich ist (typisch zum Suchen nach illegalen Zeichen bei programmiersprachengerechten selbstvergebenen Namen).
Expressions machen mich wahnsinig, immer wenn ich glaube, jetzt hätte ich es komplett verstanden, kommt wieder etwas was nicht klappt.
Numerisches Feld Begrenzungslinien
Verfasst: 25.08.2010, 13:55
von nele_sonntag
Numerisches Feld Begrenzungslinien
Verfasst: 25.08.2010, 14:09
von nele_sonntag
Irgendwas mache ich falsch:
Bei
Code: Alles auswählen
//nur Eingabe von Punkt und Zahlen erlaubt
if(xfa.event.newText.match(/[^0-9/./]/))
{
xfa.event.change = "";
}
kann ich nur Zahlen und Punkt eingeben. Wunderbar.
Füge ich aber noch den zweiten Teil hinzu, um auch noch ein Minus zu erlauben,
Code: Alles auswählen
//nur Eingabe von Punkt Minus und Zahlen erlaubt
if(xfa.event.newText.match(/[^0-9/./]/) || xfa.event.newText.match(/[^w-]/))
{
xfa.event.change = "";
}
erlaubt er gar nichts mehr??
Numerisches Feld Begrenzungslinien
Verfasst: 25.08.2010, 14:18
von nele_sonntag
Habe es jetzt so gelöst. Erlaubt nur Eingabe von Zahlen, Punkt und Minus.
Code: Alles auswählen
if(xfa.event.newText.match(/[^-.d]/)){
xfa.event.change = "";
}
Würde mich trotzdem interessieren, was ich bei ^w falsch gemacht habe.
LG Mandy
Numerisches Feld Begrenzungslinien
Verfasst: 25.08.2010, 14:32
von john61
Hallo,
nun ich habe die regulären Ausdrücke auch nicht erfunden.
Sie sind nützlich, wenn man sie enträtselt, aber manchmal kosten sie eben Nerven und Geduld.
In erster Näherung gibt es zwischen \W und ^\w (Negation von \W) keinen Unterschied.
Gemäß Beschreibung sind
\W ein Zeichen, das weder Buchstabe noch Zahl noch Unterstrich ist, also [^\w]
und
\w ein Buchstabe, eine Ziffer oder der Unterstrich, also [a-zA-Z_0-9] (und evtl weitere Buchstaben, z.B. Umlaute
Nachzulesen u.a. bei
http://de.wikipedia.org/wiki... unter Regulärer Ausdruck.
Womit könnte ich Dir nun konkkret helfen?
Gruß
john61
Numerisches Feld Begrenzungslinien
Verfasst: 25.08.2010, 14:38
von nele_sonntag
Schön wäre zu wissen, wo hier mein Fehler liegt?
Es soll nur die Eingabe von Zahlen, Punkten oder einem Minus gestattet sein. Er erlaubt aber gar nichts mehr. BZw., wie integriere ich das Minus in den vorderen Ausdruck?
Code: Alles auswählen
//nur Eingabe von Punkt Minus und Zahlen erlaubt
if(xfa.event.newText.match(/[^0-9/./]/) || xfa.event.newText.match(/[^w-]/))
{
xfa.event.change = "";
}
Lieben Dank Mandy
Numerisches Feld Begrenzungslinien
Verfasst: 25.08.2010, 15:02
von john61
Dieser Ausdruck ist doch perfekt (wenn man den vor dem d einfügt).
if(xfa.event.newText.match(/[^-.d]/))
{
xfa.event.change = "";
}
So funktioniert es auch
//nur Ziffern, Punkte und Minus erlauben
if(xfa.event.newText.match(/[^0-9\.\-]/)) //(Kommentar) \. und \-
{
xfa.event.change = "";
}
Gruß
john61
Numerisches Feld Begrenzungslinien
Verfasst: 25.08.2010, 15:18
von nele_sonntag
Danke. Das der andere auch sehr gut ist keine Frage, wollte nur um zu Lernen, wissen, wo der Fehler im Syntax bei dem /^w war.
Lieben Gruß