Sebastian: Reguläre Asdrücke - Zahlenwert überprüfen

Beitrag lesen

Hy, hier wieder mal eine der beliebten Kniffelaufgaben mit RegExp:

in einem Textfeld "Strasse und Hausnummer" soll mittels Regulären Ausdrücken überprüft werden, ob auf die Angabe der Strasse eine mindestens ein- bis maximal dreistellige Hausnummer folgt.

Der Reguläre Ausdruck hierfür sähe meiner Meinung nach so aus:

ausdruck = /\d{1,3}$/; // Eine Zahl, mindestens ein- bis maximal dreistellig am Ende

So!

Jetzt sind aber hier leider auch Angaben wie "1 2 3" - also eine ein- bis dreistellige Zahl - mit Leerzeichen dazwischen - möglich.

Eine gute deutsche Hausnummer kennt einen derartigen Aufbau aber nicht!

Grundsätzlich sind Leerzeichen in diesem Textfeld ja erlaubt; ein genereller Ausschluß von Leerzeichen ist also nicht möglich.

Jetzt bin ich auf die Idee gekommen, die Hausnummer mittels "exec" zu selektieren und daraus eventuell vorhandene Leerzeichen per "replace" zu entfernen:

ausdruck = /(\d{1,3})$/;

wert = textfeld.value;

hausnummer = ausdruck.exec(wert);

hausnummer[1] liefert mir bei Angaben wie "1 2 3" aber leider nur die jeweils letzte Ziffer einer Ziffernfolge und nicht den gesammten, in ( ) gesetzten Suchstring.

Wie kann ich bloß im Textfeld "Strasse und Hausnummer" die Hausnummer selektieren und getrennt vom übrigen Wert auf ein korrektes Format überprüfen ?

Mit Dank im voraus

Sebastian