HighDots Forums  

RegExp | nichts

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss RegExp | nichts in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Kai Schuster
 
Posts: n/a

Default RegExp | nichts - 10-11-2009 , 03:28 PM






Hallo,
habe ein RegExp für eine Zahl die mit 0 oder 00 beginnen muss und
mindestens 8 Zeichen lang ist.

'/^0[0-9]{7,}$/'

Das funktioniert auch.

Nun möchte ich als Alternative eine leere Eingabe auch durchlassen (also
kein Pflichtfeld).

Ich habe eine ganze Weile gesucht und nichts gefunden, was nach dem |
kommen soll. Nur ein Bsp.

'/^0[0-9]{7,}|""$/'

Kann mir jemand helfen?

Wenn vorher noch evtl. Leerzeichen entfernt werden würden wär auch gut
aber nicht so wichtig.

Danke für Tipps
Kai

Reply With Quote
  #2  
Old   
Holger Jeromin
 
Posts: n/a

Default Re: RegExp | nichts - 10-11-2009 , 03:34 PM






Kai Schuster schrieb am 11.10.2009 21:28:

Quote:
habe ein RegExp für eine Zahl die mit 0 oder 00 beginnen muss und
mindestens 8 Zeichen lang ist.

'/^0[0-9]{7,}$/'
Das funktioniert auch.

Nun möchte ich als Alternative eine leere Eingabe auch durchlassen (also
kein Pflichtfeld).

Ich habe eine ganze Weile gesucht und nichts gefunden, was nach dem |
kommen soll. Nur ein Bsp.

'/^0[0-9]{7,}|""$/'

Kann mir jemand helfen?
Ich würde einfach das ganze per
if (string.length === 0 || <regexp>)
machen. Dann muss im Falle "" von gar nicht erst die mächtigere regexp
engine bemüht werden.

--
Mit freundlichen Grüßen
Holger Jeromin

Reply With Quote
  #3  
Old   
Gregor Kofler
 
Posts: n/a

Default Re: RegExp | nichts - 10-11-2009 , 04:13 PM



Kai Schuster meinte:
Quote:
Hallo,
habe ein RegExp für eine Zahl die mit 0 oder 00 beginnen muss und
mindestens 8 Zeichen lang ist.

'/^0[0-9]{7,}$/'

Das funktioniert auch.

Nun möchte ich als Alternative eine leere Eingabe auch durchlassen (also
kein Pflichtfeld).

Ich habe eine ganze Weile gesucht und nichts gefunden, was nach dem |
kommen soll. Nur ein Bsp.

'/^0[0-9]{7,}|""$/'

Kann mir jemand helfen?

/^(0[0-9]{7,}|)$/

Quote:
Wenn vorher noch evtl. Leerzeichen entfernt werden würden wär auch gut
aber nicht so wichtig.
/^\s*(0[0-9]{7,}|)$/

Wobei: Du willst doch matchen und nicht replacen, oder?

Gregor


--
http://www.gregorkofler.com

Reply With Quote
  #4  
Old   
Kai Schuster
 
Posts: n/a

Default Re: RegExp | nichts - 10-11-2009 , 04:38 PM



Holger Jeromin schrieb:
Quote:
Ich würde einfach das ganze per
if (string.length === 0 || <regexp>)
machen. Dann muss im Falle "" von gar nicht erst die mächtigere regexp
engine bemüht werden.
Geht in dem Fall nicht, da ich mit einem Framework arbeite, wo ich nur
den Ausdruck übergeben kann.
Danke, Gruß Kai

Reply With Quote
  #5  
Old   
Kai Schuster
 
Posts: n/a

Default Re: RegExp | nichts - 10-11-2009 , 04:40 PM



Gregor Kofler schrieb:
Quote:
/^(0[0-9]{7,}|)$/

Wenn vorher noch evtl. Leerzeichen entfernt werden würden wär auchgut
aber nicht so wichtig.

/^\s*(0[0-9]{7,}|)$/
Danke, das funzt. Ohne Runde Klammern hatte ich das schon, brachte aber
nichts. Warum muss man eigentlich auch nur eine Gruppe gruppieren?
Quote:
Wobei: Du willst doch matchen und nicht replacen, oder?
Ja, matchen.

Gruß Kai

Reply With Quote
  #6  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: RegExp | nichts - 10-12-2009 , 06:01 AM



Kai Schuster wrote:

Quote:
habe ein RegExp für eine Zahl die mit 0 oder 00 beginnen muss und
mindestens 8 Zeichen lang ist.
[...]
Nun möchte ich als Alternative eine leere Eingabe auch durchlassen (also
kein Pflichtfeld).
[...]
Wenn vorher noch evtl. Leerzeichen entfernt werden würden wär auch gut
aber nicht so wichtig.
/^\s*(0[0-9]{7,}|)\s*$/

Damit werden aber Leerzeichen _nicht_ entfernt (dafür wird z.B:
String.prototype.replace() benötigt), sondern Whitespaces im zu
überprüfenden Wert _ignoriert_ (im Unterschied zu Gregors Vorschlag
auch als Suffix).

BTW: Im Unterschied zu z.B. Java oder PHP ist der ECMAScript-RegExp-
Initialisierer kein Bestandteil eines String-Werts, sondern steht
eigenständig für eine Referenz auf eine RegExp-Instanz. Er wird
durch </> begrenzt, nicht durch <'>. (Nicht zu verwechseln mit
RegExp('...') bzw. RegExp("...").)


PointedEars

Reply With Quote
  #7  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: RegExp | nichts - 10-12-2009 , 02:53 PM



Thomas 'PointedEars' Lahn wrote:

Quote:
Kai Schuster wrote:
habe ein RegExp für eine Zahl die mit 0 oder 00 beginnen muss und
mindestens 8 Zeichen lang ist.
[...]
Nun möchte ich als Alternative eine leere Eingabe auch durchlassen (also
kein Pflichtfeld).
[...]
Wenn vorher noch evtl. Leerzeichen entfernt werden würden wär auch gut
aber nicht so wichtig.

/^\s*(0[0-9]{7,}|)\s*$/

Damit werden aber Leerzeichen _nicht_ entfernt (dafür wird z.B:
String.prototype.replace() benötigt), sondern Whitespaces im zu
überprüfenden Wert _ignoriert_ (im Unterschied zu Gregors Vorschlag
auch als Suffix).
Gerade fällt mir auf, dass Alternation hier unnötig ist:

/^\s*(0[0-9]{7,})?\s*$/


PointedEars

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.