Link zu www.kneller-gifs.de

Reguläre Ausdrücke (regular expressions) -Einführung-

Reguläre Ausdrücke sind Muster (Patterns), mit denen Zeichenkombinationen in einer Zeichenkette gesucht und auch ersetzt werden können.

Sie können in verschiedenen Sprachen (Javascript, Perl, XML-Schema,...) eingesetzt werden und sind von der Syntax her überall ähnlich. In Javascript werden diese Ausdrücke z.B. bei den String-Methoden search(), match() und replace() oder bei den Methoden exec() und test() des regular-expression-Objektes verwendet. In XML-Schema zur Beschränkung von Elementinhalten.

Ein regulärer Ausdruck kann aus bis zu drei Teilen ( /pattern/i ) bestehen:


Zur Einstimmung dient das folgende HTML-Coding. In das erste Formularfeld wird ein regulärer Ausdruck eingegeben, in das zweite Feld der zu testende Wert. Nach Anklicken des Test-Buttons wird der Wert gegen den Ausdruck per Methode test() geprüft und das Ergebnis im letzten Feld angezeigt.
  <html>
    <head>
      <script type="text/javascript">
        function pruef() {
          var input = formular.eingabe.value;
          var expression = new RegExp(formular.regAusdr.value);
          var result = expression.test(input);
          if (result == true)
            formular.ergebnis.value="Eingabe korrekt!";
          else
            formular.ergebnis.value="Eingabe falsch!";
        }
      </script>
    </head>
    <body>
      <form name="formular">
        <table>
          <tr><td>RegAusdruck: </td><td><input type="text" name="regAusdr" value="\d{2}"></td></tr>
          <tr><td>TestWert:    </td><td><input type="text" name="eingabe">
                                                    <input type="button" value="Test" onClick="pruef();"></td></tr>
          <tr><td>TestErgebnis:</td><td><input type="text" name="ergebnis"></td></tr>
        </table>
      </form>
    </body>
  </html>
Bedeutung des regulären Ausdrucks \d{2}:
- "\d" steht für Ziffer (digit)
- Zwischen den Klammern {} steht, wie oft die Einheit vor der Klammer (Ziffer) vorkommen muss (2 mal)
Der zu untersuchende Ausdruck muß also zwei Ziffern in Folge enthalten:
"A1" wäre nicht ok, "A12" wäre ok, "A12B" wäre ok, "A123" wäre ok, "A1B2" wäre nicht ok.

  Hinweis:
Wird in JavaScript eine Variable mit einem regulären Ausdruck definiert, dann diesen mit Delimiter angeben
Bsp.: var expression = /\d{2}/;

  Hinweis:
Wird in JavaScript ein neues RegExp-Objekt angelegt, dann keine Delimiter angeben, das macht der Konstruktor. Eventuelle Modifier durch Komma getrennt beim Konstruktoraufruf angeben.
Bsp.: var expression = new RegExp("\d{2}","i");