s.oliver: Regular Expression führt zu JS Fehler

Beitrag lesen

Servus,

Hier ist mein Ausruck:
var reg = new RegExp[...]
Wo liegt das Problem?

Der RegExp-Konstruktor ist für dynamische Ausdrücke gedacht, welche sich in
der normalen JS/RE-Syntax "var suchmuster = /muster/modifikator;" nicht
erzeugen lassen. Also beispielsweise:

var name = "Katharina";
var suchmuster = new RegExp( "\b" + name + "\b", "i" );

Der zweite Parameter ist optional.

/[1]*<?(\s*(+)?\s*[(]?(\s*[(]?[0-9]\s*[)]?\s*[.]?\s*[-/]*\s*){6,})>?\s*$/

[...]

Buchstaben und Sonderzeichen sollen schon mal nicht zulässig sein
(ausser '+' '-' '.' ' ' '/' '')

Hmm, ich lasse die möglichen Leerstellen mal aussen vor ('[\s]*' sollte wohl
auch ein '\s*' werden):

/                     #01
    ^                 #02
    <?                #03 Ein '<' darf also vorhanden sein
    (                 #04
        (+)?         #05
        [(]?         #06 für ein Zeichen braucht es normalerweise keine Klasse
        (             #07
            [(]?     #08 Möglich ist also in einer Reihe '('
            [0-9]     #09 und '0'
            [)]?     #10 und ')'
            [.]?     #11 und '.'
            [-/]*   #12 und keine oder viele, viele '-' oder '/'
        ){6,}         #13 und das ganze (08-12) mindestens sechs mal
    )                 #14
    >?                #15 siehe 03
    $                 #16
/                     #17

Das ist schon ein eigenartiger Ausdruck: speziell Block 08-12 lässt eine
Menge Unsinn zu; so sind '+(123) (456) (789)' oder '<(0)./-12345>' im Sinne
dieses Ausdrucks valide Zeichenfolgen.

Grüsse


  1. \s ↩︎