Numerisches Feld Begrenzungslinien

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
john61
Beiträge: 27
Registriert: 09.06.2009, 13:01

Numerisches Feld Begrenzungslinien

Beitrag von john61 » 25.08.2010, 13:19

Hallo Mandy,

wie geschrieben, \W bzw. ^\w steht für all diese Zeichen mit Ausnahme des Unterstriches.

Und klappt es bei Dir?

Gruß
john61

john61
Beiträge: 27
Registriert: 09.06.2009, 13:01

Numerisches Feld Begrenzungslinien

Beitrag von john61 » 25.08.2010, 13:45

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

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Numerisches Feld Begrenzungslinien

Beitrag von nele_sonntag » 25.08.2010, 13:50

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. :-(

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Numerisches Feld Begrenzungslinien

Beitrag von nele_sonntag » 25.08.2010, 13:55

Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Numerisches Feld Begrenzungslinien

Beitrag von nele_sonntag » 25.08.2010, 14:09

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??

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Numerisches Feld Begrenzungslinien

Beitrag von nele_sonntag » 25.08.2010, 14:18

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

john61
Beiträge: 27
Registriert: 09.06.2009, 13:01

Numerisches Feld Begrenzungslinien

Beitrag von john61 » 25.08.2010, 14:32

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 
 

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Numerisches Feld Begrenzungslinien

Beitrag von nele_sonntag » 25.08.2010, 14:38

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

john61
Beiträge: 27
Registriert: 09.06.2009, 13:01

Numerisches Feld Begrenzungslinien

Beitrag von john61 » 25.08.2010, 15:02

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

 


Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Numerisches Feld Begrenzungslinien

Beitrag von nele_sonntag » 25.08.2010, 15:18

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ß

Antworten