Moe: Reguläre Ausdrücke

Hi,

Ich habe zu den regulären Ausdrücken in JavaScript bezüglich der Performance eine Frage:

Ist es besser einen kurzen, aber meist auch komplizierten, regulären Ausdruck zu verwenden oder doch eher mehrere einfachere Ausdrücke, die mit && im if-Statement verbunden sind.
Wie wirkt sich das auf die Performance aus? Ich denke die beiden werden sich nicht viel schenken, aber ich frage trotzdem mal, welche Variante ihr bevorzugen würdet.

Hier noch ein Beispiel, damit meine Frage hoffentlich klarer wird:

Überprüfung auf eine 'Integer'-Zahl im Format 9999999 oder 9.999.999:

1.Variante

if (string.search(/[1]{1,2}.[0-9]{3}.[0-9]{3}.([0-9]{3})$/) == -1
     && string.search(/[2]{3}.[0-9]{3}.([0-9]{3})$/) == -1
     && string.search(/[3]{1,2}.[0-9]{3}.([0-9]{3})$/) == -1
     && string.search(/[4]{1,2}.[0-9]{3}$/) == -1
     && string.search(/[5]{3}.[0-9]{3}$/) == -1
     && string.search(/[6]+$/) == -1) {fehler}

2.Variante

if (string.search(/(^\d+$)|(^\d{1,3}(.\d{3})?(.\d{3})?(.\d{3})?$)/) == -1) {fehler}

Bin für jeden Tipp dankbar.
gruß moe


  1. 0-9 ↩︎

  2. 0-9 ↩︎

  3. 0-9 ↩︎

  4. 0-9 ↩︎

  5. 0-9 ↩︎

  6. 0-9 ↩︎

  1. hallo

    ich würde die zweite variante nehmen. sie ist kurz, übersichtlich und wegen der performance: reguläre ausdrücke sind so oder so in jeder programmier- / (teilweise)scriptsprache implementiert. das heißt, dass sie auf performance getrimmt sind.
    bei einem, noch sehr kurzen, wie deinem spielt die performance noch keine rolle.

    cu
    ulli